简单的socket代码和多线程练习
用socket服务端和多线程实现可以连接多个客户端并同时收发的功能。
这里要用到socket 和 threading
一、创建socket服务端
首先,按正常操作,创建一个socket,选择ipv4和数据流:
socketServer = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 通过socket模块获取本地ip,并绑定ip和端口号,设置监听数量
socketServer.bind((socket.gethostbyname(socket.gethostname()), 8080))
socketServer.listen(5) #这里监听数量和创建的接收线程数应保持一致
# 然后设置两个全局变量,以便线程中的得到的客户端信息和ip传出,方便选择发送信息
global Cilents, addrips
Cilents = []
addrips = []
二、多线程
考虑到多个客户端连接,就需要把等待连接、接收信息、发送信息其中两个个丢到多线程中,我选择把发送信息放在主线程,并在等待连接的进程中再创建接收信息的进程: