使用子线程来完成链接循环和通信循环
Posted cheng825
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用子线程来完成链接循环和通信循环相关的知识,希望对你有一定的参考价值。
#客户端
import socket
soc = socket.socket()
soc.connect(('127.0.0.1',8090))
while True:
data = input('>>:')
soc.send(data.encode('utf8'))
data = soc.recv(1024)
print(data)
#服务端
import socket
from multiprocessing import Process
# class pro(Process):
# def __init__(self,conn,addr):
# super().__init__()
# self.conn = conn
# self.addr = addr
# def run(self) -> None:
# while True:
# data = self.conn.recv(1024)
# print(data)
# self.conn.send('ok'.encode('utf8'))
# self.conn.close()
def pro(conn,addr):
print(f'客户{addr}连接了')
while True:
try:
data = conn.recv(1024)
print(data)
conn.send('ok'.encode('utf8'))
except ConnectionResetError:
conn.close()
break
if __name__ == '__main__':
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
soc.bind(('127.0.0.1', 8090))
soc.listen(5)
while True:
conn, addr = soc.accept()
Process(target=pro,args = (conn, addr)).start()
以上是关于使用子线程来完成链接循环和通信循环的主要内容,如果未能解决你的问题,请参考以下文章
for循环内线程池并发执行任务,等到子线程全部处理完任务,主线程在执行java的实现方式
linux c++多线程,创建两个子线程,主线程有个循环,循环内需要从两个子线程中获取数据,然后计算结果。