我试图找出一个多线程问题,两个客户端永远运行,同时向服务器发送 ping,而服务器不断回显消息。
在发现一个客户端/服务器如何永远来回回显之后,我研究了多线程。
当我添加第二个客户端时,它将接收第一个客户端的最后一个输出。然后,第二个客户端将与服务器重复回显,而第一个客户端从未收到消息,将其冻结。
我被困在这几天,所以帮助会很好。
无论如何,这是我用来测试的代码:
客户端A.py
import socket
import time
host = '127.0.0.1'
port = 2004
BUFFER_SIZE = 2000
tcpClientA = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcpClientA.connect((host, port))
while True:
data = 'this is client A'
tcpClientA.send(data)
data2 = tcpClientA.recv(BUFFER_SIZE)
print " Client A received data:", data2
Clientb.py与客户端 A 相同,但带有 ab
服务器.py
import socket
import time
import thread
from threading import Thread
from SocketServer import ThreadingMixIn
BUFFER_SIZE = 1024
TCP_IP = '127.0.0.1'
TCP_PORT = 2004
tcpServer = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcpServer.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
threads = []
def client(ip,port):
while True:
data = conn.recv(2048)
conn.send(data)
conn.close()
print "Server waiting"
tcpServer.bind((TCP_IP, TCP_PORT))
tcpServer.listen(4)
while True:
conn,addr=tcpServer.accept()
thread.start_new_thread(client,(conn,addr))
tcpServer.close()
一只甜甜圈
阿晨1998
相关分类