基于socket实现聊天机器人
注意别人一连接过来就发conn.sendall("欢迎致电老男孩")。注意在python2.7是直接conn.sendall(),里面加字符串就可以了。而在python3则是需要转换成字节。就是转换成以下形式:
conn.sendall(bytes('欢迎致电老男孩',encoding='utf-8'))
在客户端:表示最多接收1024字节,形式如下:obj.recv(1024)注意超过1024就接收不了了,接收不了,就下次接收。ret_bytes=obj.recv(1024) ret_str=str(ret_bytes,encoding='utf-8')
注意客户端的obj.recv()也是会阻塞的。
注意sk.accept()是阻塞的,但是这个阻塞是等待着用户来进行连接。
而客户端那个是等着服务器端来发数据。
通过sendall():可以发送数据,通过recv可以接收数据。这次让服务器端也接收数据。
这次通过在客户端直接连续不断的发送数据,代码如下:
while True:
inp=input("请输入要发送的内容:")
obj.sendall(bytes(inp,encoding='utf-8'))
ret=str(obj.recv(1024),encoding='utf-8')
print(ret)
在s1.py里边,如果想要停止发送:则在循环里边:
if ret_str=='q':
break
同时在客户端里边写:
if inp=='q':
obj.sendall(bytes(inp,encoding='utf-8'))
break
else:
obj.sendall(bytes(inp,encoding='utf-8'))
ret=str(obj.recv(1024),encoding='utf-8')
print(ret)
其实通过socket可以来一个简单的交互。



浙公网安备 33010602011771号