Python 2.7 Python套接字问题

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

也许我不明白插座应该如何工作,所以也许有人可以帮助我。我原以为下面的内容会永远循环打印“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.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循环。

非常感谢。这确实是问题所在。非常感谢。这确实是问题所在。