使用多进程,面向对象的方式建立tcp服务器,实现多连接,重复响应
使用多进程,可以重复建立连接,一次连接中,另外一个客户端也可以连接服务器
import socket
import multiprocessing
class TcpSever:
#init方法初始化服务器,设置socket套接字,绑定端口,等待连接,
#在创建类对象时即可初始化这些属性
def __init__(self):
self.tcp_sever = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.tcp_sever.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
self.tcp_sever.bind(('',10000))
self.tcp_sever.listen(128)
def kernel(self, sever, ip_port):
#循环重复接收并相应数据,数据需要编解码
while True:
data = sever.recv(1024)
sever.send()
def run(self):
#run 方法建立连接,启用多进程实现多链接
while True:
new_sever, ip_port = self.tcp_sever.accept()
m1 = multiprocessing.Process(target=self.kernel, args=(new_sever, ip_port))
m1.start()
new_sever.close()
def main():
#main方法创建类对象,调用run方法启用服务器
sever = TcpSever()
sever.run()
if __name__ == '__main__':
main()