2010-01-20 106 views
-2

我不明白爲什麼它使用兩個不同的socket請幫助我謝謝。有關socket的問題!(客戶端/服務器)

客戶端將請求通過從服務器套接字9123 的文件時,服務器將然後將文件通過上 插座8123,其每一個客戶會聽,一旦請求文件發送到客戶端。

+0

是'它'是一種產品嗎?是'它'是你的代碼嗎? – 2010-01-20 08:53:13

回答

0

TCP連接在兩個端口號之間。客戶端有一個用於回覆的端口號,服務器有一個客戶端發送請求的端口。

1

你需要解釋它比這更好的...

  • 並在每個客戶端偵聽UDP端口8123和服務器應該立刻與所有溝通 - 如果是這樣,這是一個UDP套接字和您無法保證客戶端收到該文件。

  • 是否每個客戶端都在TCP端口8123上進行偵聽(因此服務器必須再次連接到首先請求文件的客戶端?) - 這不是一個好主意,因爲您已經有一個客戶端建立服務器連接(在端口9123上 - 技術上說,一旦你在服務器上連接了一個連接,通信從9123移動到一個開放的高端口) - 你只需要產生一個線程來發送文件和服務器套接字就可以不斷接受來自其他客戶的連接。如果您必須在一個端口上接收請求並在另一個端口上發送文件(爲什麼?),則只需在接收請求後將其連接到客戶端並通過它發送文件即可創建一個新套接字 - 但您確實需要考慮爲什麼像那樣實施它。