socket+threading实现python多人局域网聊天室
服务端
import socket
import threading
"""
设计思路:
1.每连接一个客户,创建一个线程
2.每个线程单独接收一个客户的信息,并向所有连接的客户发送接受到的信息
3.这样就可以实现聊天室的功能
"""
# 设置服务端
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 本机IP地址
IP = '************'
# 设置端口号
port = 12345
# 绑定主机名和端口
server.bind((IP,port))
server.listen(1000)
# 用来记录聊天室内的客户
# 使用集合,确保集合里的元素唯一
customers = set()
# 向所有用户发送信息
def send_all(data,address):
global customers
try:
for customer in customers:
customer.send(data)
except(ConnectionResetError)