[英]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.