我環顧四周,但找不到任何答案來回答我的問題。如何使用python標識兩個不同的套接字連接?
問題是我正在製作一個小聊天程序。在看了一些教程和一些文檔後,我設法創建了一個類似這樣的聊天程序:
我有一個客戶端和一個客戶端/服務器。客戶端/服務器基本上將自己設置爲服務器,並且還可以回覆客戶端。
因此它偵聽用戶識別的某個端口,然後接受客戶端連接。
問題是,我決定我想把這一切都改變一下。
而不是擁有客戶端/服務器。我需要兩臺客戶機和一臺充當兩臺客戶機之間交換機的服務器。基本上指導所有聊天到連接的地址。
這裏就是我有點爲難:
HOST = input("Please define the host IP, if over local, name 'localhost': ")
PORT = int(input("Please define the port to be communicated over: "))
if PORT == False:
PORT = 4010
s = socket(AF_INET,SOCK_STREAM)#AF_INET and SOCK_STREAM are standard.
s.bind((HOST,PORT))# The socket is being bound, or assigned, the ip of the server, as well as the communicating port.
s.listen(2)#Accepting only a single connection. EDIT: Now two connections.
conn,addr = s.accept()
print("\nNetwork activity from address: ",addr,)
# Section two: Communications Loop.
的問題是s.listen(2)
已被編輯帶2個連接,但我怎麼來管理不同的連接來連接,或將它們分配變量,這樣我可以讓交換機的東西工作?
如果你發現這是一個重複的線程,請發佈鏈接,我會看看我是否可以刪除這個,然後去那裏閱讀。 (對不起,我在這之前發過可怕的經歷,(因爲我沒有得到原因而被投票拒絕))
我完全不知道如何執行此操作。任何教程或文檔都可以指向我,這需要我做什麼? – Micrified 2013-03-05 09:50:12
我甚至寫過一個代碼示例! – LtWorf 2013-03-05 09:57:36
Eugh。對此如何工作有點困惑。看起來你從一個最初爲空的連接列表開始。 (因爲我們沒有連接)然後你有一個連續的循環,它執行以下操作:等待可讀,等待可寫,以及等待異常情況都將如下所示:Waiting Readable將會是[s],因爲您在等待我們監聽傳入數據的套接字。另外兩個是空的。現在我感到困惑的是'我'是什麼,其餘的工作如何。 – Micrified 2013-03-05 10:12:35