上一节:
<<用Python将你的女朋友,藏在图片里(附代码)>>
不知道你们女朋友,上节课有没有收到你们的图片,大吃一惊、给你个大大的拥抱!哈哈,今天我们教点更厉害的。让你实现一个聊天室,
本次文章要使用之前写过的一个代码,所以没看过的,请点击下面链接学习一下。顺便按照里面的要求,去申请一个机器人,获得apikey。
<<【Python】AI智能聊天机器人>>
然后发送【源码
】下载【S21.py
】这个文件
再来开始看今天的教程
简而言之,通过Socket,就是可以将信息发送给另一台主机里的某个程序,就像QQ和微信一样。
需要用代码实现一个客户端程序、一个服务器端程序,然后进行消息的发送,自动回复等功能!
上面所说的一切都做完了,才能进行下一步哦
python自带模块,直接导入就可以。
首先你要先通过socket建立一个客户端,然后通过ip和端口链接到服务器。每个电脑的本地主机的ip都是“127.0.0.1”,端口你可以自己定义一个。recv就是receive的缩写就是“接收消息”函数,会接收到从服务器发来的消息。
因为通信过程使用的都是字节流,就是
“01101101001010110…010111100100100”
所以要使用decode进行解码
写一个while死循环,然后随时接收用户键盘输入的内容,进行“utf-8”编码后,send发送给服务器端,然后等待服务器端返回消息,再使用decode解码输出。最后,程序结束时,要记得关闭这个链接。
到这里,客户端就写完了。
这里的s21,就是我们之前自己写的聊天机器人源码,这里只需要稍微修改一下,然后给今天的代码使用。as MilFun 就是给模块起个别名,随便你怎么起,只要不起冲突都可以。
把上图中的print改成return就可以了。然后最后的主程序那些都删掉,只保留sendMsg()函数。如下图:
还记得把代码里面的key改成你自己生成的机器人key,因为每天调用次数有限,你们还是用自己的吧!
这里的端口是8888,所以你客户端代码里也要是8888,否则就会连不上。其它不懂的看注释。
写一个死循环,一有用户链接,就发送你好。accept是接收客户端链接请求。
再写一个死循环,用来给用户回消息,只要接收到用户发来的消息,就是哟个MilFun.sendMsg函数,发给机器人然后把返回来的消息赋值给res。MilFun就是导入的时候,你起的别名,sendMsg就是我们在s21.py里面自己定义的函数功能。
同样记得,编码解码,最后关闭链接。完事!
测试调试
优秀的人儿,要记得调试自己的代码,找Bug,修Bug。
所以你要先运行服务器端那个文件,然后再运行客户端那个文件。
左边是服务器端, 右边是客户端。
python完整代码
需要源码,请发送【源码】到公众号
今天文件名为【Socket.zip】