Python基于socket实现的多任务版TCP服务端
生活随笔
收集整理的這篇文章主要介紹了
Python基于socket实现的多任务版TCP服务端
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
'''
基于socket實現的多任務版TCP服務端
'''
import socket
import threadingdef client_task(client_socket,ip_port):print(ip_port,'加入連接')# 持續接收客戶端的消息while True:data=client_socket.recv(1024).decode('gbk')if len(data)!=0:print(f'客戶端{ip_port[0]}發來的信息是{data}')else:print(f'客戶端{ip_port[0]}已經斷開連接')breaksend_data=('Hello--'+data).encode('gbk')client_socket.send(send_data)if __name__ == '__main__':server_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)server_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True)server_socket.bind(('',7777))server_socket.listen(128)# 循環接收客戶連接while True:client_socket,ip_port=server_socket.accept() # 會一直等待接收連接t_client=threading.Thread(target=client_task,args=(client_socket,ip_port))t_client.setDaemon(True)t_client.start()
面向對象版本
''' 基于socket實現的多任務版TCP服務端(面向對象) '''import socket import threadingclass SocketServer(object):def __init__(self, port):self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)self.server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)self.server_socket.bind(('', port))self.server_socket.listen(128)def start(self):# 循環接收客戶連接while True:client_socket, ip_port = self.server_socket.accept() # 會一直等待接收連接t_client = threading.Thread(target=self.client_task, args=(client_socket, ip_port))t_client.setDaemon(True)t_client.start()def client_task(self,client_socket, ip_port):print(ip_port, '加入連接')# 持續接收客戶端的消息while True:data = client_socket.recv(1024).decode('gbk')if len(data) != 0:print(f'客戶端{ip_port[0]}發來的信息是{data}')else:print(f'客戶端{ip_port[0]}已經斷開連接')breaksend_data = ('Hello--' + data).encode('gbk')client_socket.send(send_data)if __name__ == '__main__':server_socket=SocketServer(7777)server_socket.start()總結
以上是生活随笔為你收集整理的Python基于socket实现的多任务版TCP服务端的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python基于socket实现的TCP
- 下一篇: Python搭建静态web服务器