假設我在計算機A中,我有幾臺運行在不同端口上的服務器,但都基本上是同一個程序的一個實例(只是綁定到不同的端口)。現在,計算機B,一個客戶端,是否需要知道他希望在計算機A上連接的軟件是什麼端口?計算機如何知道數據包的端口?
問題是,我正在實施一些類似於套接字的通信。一切都應該正常工作,但我不知道如何創建從計算機到另一個初始消息 - 我只是不知道要發送到什麼端口。客戶端是否知道他要發送到服務器上的端口?
說這裏(客戶端):clientsocket.connect(('localhost', 8089))
,客戶端連接運行在端口8089上的服務器嗎?如果是這樣,他的套接字端口是什麼(他使用什麼端口爲客戶端?)
謝謝,但在什麼樣的計算機上插座將在計算機乙?比如說,我嗅探數據包,發現目標端口是80(我正在聯繫一個web服務器),但是如果有的話,哪一行代碼確定了源端口。 – Jonathan
如果你有數據包(並且我假設它是一個TCP套接字),它是數據包頭的源端口字段,它是目標端口之前的2字節字段。 – chepner