簡體   English   中英

Python中的套接字編程 - 實際的遠程端口

[英]Socket programming in Python — actual remote port

我最近在Python中做了一些網絡編程,並想確認我認為在客戶端和服務器之間發生的流程:

  • 服務器偵聽給定的通告端口(9999)
  • 客戶端通過創建新套接字連接到服務器(例如1111)
  • 服務器接受客戶端請求並自動生成一個新的套接字(????),它現在將處理客戶端和服務器之間的通信

如您所見,在上面的流程中涉及3個插槽:

  • 偵聽客戶端的服務器套接字
  • 客戶端生成的套接字
  • 服務器生成的套接字用於處理客戶端

我知道獲取前兩個套接字(9999和1111)的端口,但不知道如何獲得與服務器端客戶端通信的“真實”端口。我現在使用的代碼片段是:

def sock_request(t):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect(('localhost', 9999))
    print('local sock name: ' + str(s.getsockname()))
    print('peer sock name: ' + str(s.getpeername()))
    s.send('a' * 1024 * int(t))
    s.close()

任何幫助獲取實際與客戶端通信的服務器上的“端口”號碼將非常感激。 TIA。

新套接字位於同一端口上。 TCP連接由4條信息標識:源IP和端口,以及目標IP和端口。 因此,您的服務器在同一端口(即偵聽套接字和接受的套接字)上有兩個套接字的事實不是問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM