阶段一:最简易的聊天系统
缺点:程序不够完善,只能一来一回,且没人每次只能说一句话
server端:
import socket
HostPort = ('127.0.0.1',9999)
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind(HostPort)
s.listen(1)
conn,addr = s.accept()
#print('Connecting by : %s ' % addr)
while 1:
data = conn.recv(1024).decode()
print (data)
user_input = input('>>>')
conn.send(user_input.encode('utf8'))
#conn.close()
s.close()
client端:
import socket
hostport = ('127.0.0.1',9999)
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(hostport)
while 1:
user_input = input('>>> ').strip()
s.send(user_input.encode('utf-8'))
if len(user_input) == 0:
continue
if user_input == 'quit':
s.close()
break
server_reply = s.recv(1024).decode()
print (server_reply)
注意事项:在python 3中,bytes和str是两个不同的概念,send和recv的数据都是bytes

本文介绍了如何使用Python3的socket库构建一个聊天系统,从最简单的聊天程序开始,然后通过引入多线程实现并发聊天功能。在第二阶段,通过创建独立的接收线程,允许服务器和客户端自由发送和接收消息,提高了聊天系统的交互性。示例代码展示了服务器端和客户端的实现,以及运行效果。


被折叠的 条评论
为什么被折叠?



