Python Socket:使用相同的套接字处理多个连接

时间:2016-05-24 04:07:29

标签: python sockets

我的问题与socket.close()函数有关。一旦我们在程序中调用它,我们就必须重新设置套接字定义以启动新连接。这段代码正常,

inv.ITEM_CODE = 'ASM.EN.CD'

此连接返回" 0"每次socket调用后输出(result1,result2) 但我需要像这样的东西,

     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()

在这种情况下,result2的输出是非零整数....除了close之外,socket中是否有任何函数可用于在两种情况下获得零输出....

由于

2 个答案:

答案 0 :(得分:0)

不,你不能连接两个套接字两次。也不清楚为什么你想要。制作两个插座,就像在第一个例子中那样。

答案 1 :(得分:0)

由于您使用的是TCP套接字,因此每个连接需要1个套接字 这意味着您必须为每个新连接创建一个新套接字,这是您的第一个示例中的情况。

connectclose函数仅适用于与其一起使用的连接 因此,多个connectclose调用必须用于多个连接。

E.g:

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()