基于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可以来一个简单的交互。

 

 

 

posted @ 2017-03-02 15:09  关泉珍  阅读(60)  评论(0)    收藏  举报