我的问题与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中是否有任何函数可用于在两种情况下获得零输出....
由于
答案 0 :(得分:0)
不,你不能连接两个套接字两次。也不清楚为什么你想要。制作两个插座,就像在第一个例子中那样。
答案 1 :(得分:0)
由于您使用的是TCP套接字,因此每个连接需要1个套接字 这意味着您必须为每个新连接创建一个新套接字,这是您的第一个示例中的情况。
connect
和close
函数仅适用于与其一起使用的连接
因此,多个connect
和close
调用必须用于多个连接。
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()