Socket科普

JAVA实现聊天机器人开源 编写聊天机器人程序_socket

简而言之,通过Socket,就是可以将信息发送给另一台主机里的某个程序,就像QQ和微信一样。

你要做什么

需要用代码实现一个客户端程序、一个服务器端程序,然后进行消息的发送,自动回复等功能!

上面所说的一切都做完了,才能进行下一步哦

Client客户端

导入模块

JAVA实现聊天机器人开源 编写聊天机器人程序_聊天室_02

python自带模块,直接导入就可以。

链接服务器段

首先你要先通过socket建立一个客户端,然后通过ip和端口链接到服务器。每个电脑的本地主机的ip都是“127.0.0.1”,端口你可以自己定义一个。recv就是receive的缩写就是“接收消息”函数,会接收到从服务器发来的消息。

JAVA实现聊天机器人开源 编写聊天机器人程序_聊天室_03

因为通信过程使用的都是字节流,就是

“01101101001010110…010111100100100”

所以要使用decode进行解码

发送消息

写一个while死循环,然后随时接收用户键盘输入的内容,进行“utf-8”编码后,send发送给服务器端,然后等待服务器端返回消息,再使用decode解码输出。最后,程序结束时,要记得关闭这个链接。

JAVA实现聊天机器人开源 编写聊天机器人程序_聊天机器人_04

到这里,客户端就写完了。

Server服务器端

导入模块

JAVA实现聊天机器人开源 编写聊天机器人程序_聊天机器人_05

这里的s21,就是我们之前自己写的聊天机器人源码,这里只需要稍微修改一下,然后给今天的代码使用。as MilFun 就是给模块起个别名,随便你怎么起,只要不起冲突都可以。

JAVA实现聊天机器人开源 编写聊天机器人程序_JAVA实现聊天机器人开源_06

把上图中的print改成return就可以了。然后最后的主程序那些都删掉,只保留sendMsg()函数。如下图:

JAVA实现聊天机器人开源 编写聊天机器人程序_聊天室_07

还记得把代码里面的key改成你自己生成的机器人key,因为每天调用次数有限,你们还是用自己的吧!

开始监听端口

JAVA实现聊天机器人开源 编写聊天机器人程序_聊天机器人_08

这里的端口是8888,所以你客户端代码里也要是8888,否则就会连不上。其它不懂的看注释。

等待客户端链接

写一个死循环,一有用户链接,就发送你好。accept是接收客户端链接请求。

JAVA实现聊天机器人开源 编写聊天机器人程序_socket_09

接收、发送消息

再写一个死循环,用来给用户回消息,只要接收到用户发来的消息,就是哟个MilFun.sendMsg函数,发给机器人然后把返回来的消息赋值给res。MilFun就是导入的时候,你起的别名,sendMsg就是我们在s21.py里面自己定义的函数功能。

JAVA实现聊天机器人开源 编写聊天机器人程序_聊天机器人_10

同样记得,编码解码,最后关闭链接。完事!

测试调试

优秀的人儿,要记得调试自己的代码,找Bug,修Bug。

    所以你要先运行服务器端那个文件,然后再运行客户端那个文件。

    左边是服务器端,        右边是客户端。

JAVA实现聊天机器人开源 编写聊天机器人程序_socket_11


JAVA实现聊天机器人开源 编写聊天机器人程序_JAVA实现聊天机器人开源_12

python完整代码

客户端

JAVA实现聊天机器人开源 编写聊天机器人程序_python_13

服务器端

JAVA实现聊天机器人开源 编写聊天机器人程序_聊天室_14