[英]Python Socket:Handling multiple connection with same socket
我的问题与socket.close()函数有关。 一旦我们在程序中调用它,我们就必须重新设置套接字定义以启动新连接。 这段代码正常,
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result1 = sock.connect_ex(('127.0.0.1',9001))
sock.close()
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result2 = sock.connect_ex(('127.0.0.1',8119))
sock.close()
在每次套接字调用之后,此连接返回“0”作为输出(result1,result2)..但是我需要像这样的东西,
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result1 = sock.connect_ex(('127.0.0.1',9001))
result2 = sock.connect_ex(('127.0.0.1',8119))
sock.close()
在这种情况下,result2的输出是非零整数....除了close之外,socket中是否有任何函数,在这两种情况下我都可以使用它来获得零输出....
谢谢
不,你不能连接一个插座两次。 也不清楚为什么你想要。 像第一个例子中那样制作两个插座。
由于您使用的是TCP套接字,因此每个连接需要1个套接字。
这意味着您必须为每个新连接创建一个新套接字,这是您的第一个示例中的情况。
connect
和close
功能仅适用于与其一起使用的连接。
因此,必须为多个连接使用多个connect
和close
调用。
例如:
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result1 = sock.connect_ex(('127.0.0.1',9001))
result2 = sock2.connect_ex(('127.0.0.1',8119))
sock.close()
sock2.close()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.