python使用socket模块实现TCP高并发任务
温馨提示:这篇文章已超过389天没有更新,请注意相关的内容是否还可用!
from threading import Thread
import socket
class HandelParse(Thread):
def __init__(self,socket_obj):
super().__init__()
self.socket_obj = socket_obj
def run(self):
while True:
recv_msg = self.socket_obj.recv(1024)
if len(recv_msg)!=0:
print(recv_msg.decode("utf-8"))
self.socket_obj.send(recv_msg) #再次原路发回去。注tcp用send方法,udp用sendto方法
else:
self.socket_obj.close()
break
class TcpServer(Thread):
def __init__(self):
super().__init__()
self.tcp_sercer = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.tcp_sercer.bind(("",7878))
self.tcp_sercer.listen(128) #设置监听数量
def run(self):
while True:
msg,client_info = self.tcp_sercer.accept() #等待连接
#创建子线程,实现多并发
handel_data_thread = HandelParse(msg)
handel_data_thread.start()
def __del__(self):
self.tcp_sercer.close()
if __name__ == '__main__':
tcp = TcpServer()
tcp.start()
使用网络调试工具测试。同时开通3 个调试助手软件进行连接。截图如下:
网络调试工具下载地址:
https://www.onlinedown.net/soft/971066.htm
多线程实socket编程
from threading import Thread
from queue import Queue
import socket
class RecvUdp(Thread):
def __init__(self,udp:socket.socket,q:Queue):
super().__init__()
self.udp = udp
self.q: Queue = q
def run(self):
while True:
msg,client_info = self.udp.recvfrom(1024)
contect=f'>>>ip:{client_info[0]},port:{client_info[1]} 内容:{msg.decode("utf-8")}'
self.q.put(contect)
def __del__(self):
self.udp.close()
class SendUdp(Thread):
def __init__(self,udp:socket.socket,q):
super().__init__()
self.udp = udp
self.q: Queue = q
def run(self):
while True:
desp_ip = input("请输入对方ip")
desp_port = int(input("请输入对方端口:"))
while True:
content = input("请输入内容")
if content :
self.udp.sendto(content.encode("utf-8"),(desp_ip,desp_port))
msg = f"
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

