Python 2.7 Python套接字问题
也许我不明白插座应该如何工作,所以也许有人可以帮助我。我原以为下面的内容会永远循环打印“Send Hello.Received:Hello to you!”,但实际上它会循环两次,然后挂起。没有超时、对等方重置连接等。只是挂起Python 2.7 Python套接字问题,python-2.7,Python 2.7,也许我不明白插座应该如何工作,所以也许有人可以帮助我。我原以为下面的内容会永远循环打印“Send Hello.Received:Hello to you!”,但实际上它会循环两次,然后挂起。没有超时、对等方重置连接等。只是挂起 import socket socket_list = [] for i in range(60000, 60002): soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) soc.connec
import socket
socket_list = []
for i in range(60000, 60002):
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
soc.connect("",i)
socket_list.append(soc)
while True:
for soc in socket_list:
soc.sendall("Hello.")
msg = soc.recv(1024)
print "Sent Hello. Received:",msg
连接另一端的代码简单如下:
import socket
soc = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
soc.bind("localhost",6000x)
while True:
soc.listen(1)
conn, addr = soc.accept()
msg = conn.recv(1024)
if msg == "Hello":
conn.sendall("Hello to you!")
在客户端程序中,您在启动时打开两个套接字,然后在程序的生命周期内使用这些套接字
while True:
conn, addr = soc.accept()
在服务器程序中,您可以在主循环的每次迭代中重复地accept()
一个新连接。这将成功地接受每个端口上的第一个连接,执行一个recv/send循环,然后重新开始并尝试接受新连接,而不是继续使用现有套接字
其中一个程序需要更改。您的客户端程序需要在其while循环内调用socket()
和connect()
,或者您的服务器程序需要将其listen()
和accept()
调用移到while循环外
在客户端程序中,您在启动时打开两个套接字,然后在程序的生命周期内使用这些套接字
while True:
conn, addr = soc.accept()
在服务器程序中,您可以在主循环的每次迭代中重复地accept()
一个新连接。这将成功地接受每个端口上的第一个连接,执行一个recv/send循环,然后重新开始并尝试接受新连接,而不是继续使用现有套接字
其中一个程序需要更改。您的客户端程序需要在其while循环内调用
socket()
和connect()
,或者您的服务器程序需要将其listen()
和accept()
调用移出while循环。非常感谢。这确实是问题所在。非常感谢。这确实是问题所在。