2013-03-13 97 views
0

如果非阻塞TCP套接字的源端口和目標端口不一致(對於p2p應用程序),如何指定套接字將連接的目標端口) 至?使用TCP套接字設置目標端口

+1

你是什麼意思,「不一致」?在TCP協議中,源端口和目的端口是不相關的數字。例如。 HTTP的目標端口通常是80,但源端口可以是任何東西。 – MSalters 2013-03-13 08:42:33

回答

1

在P2P的情況下,客戶端首先連接到torrent以獲得對等點(播種者)的列表以及在對等點打開的端口號。然後,想要下載的系統將使用跟蹤器提供的地址和端口連接到對等端。

的同行,並非限制(一般),並接受來自任何來源地址或IP

1

指定連接的目的端口連接在您傳遞給connect()的sockadder-結構完成 - 電話。由於您沒有指定您正在使用的操作系統,因此很難提供具體示例。但是,對於Linux和Windows,通常使用getaddrinfo()來加載sockaddr-struct。一個很好的Linux例子是here,而MS的官方文檔中有一個example

+0

克里斯蒂安:我使用的是Windows和Linux Ubuntu 12.10,因爲這個應用程序將具有兩個操作系統的版本。 – 2013-03-13 15:33:04

+0

好的。 getaddrinfo的簽名非常相似,所以使用一些小的#ifdef WINDOWS/LINUX,你的代碼應該是獨立於平臺的。 – 2013-03-13 20:45:12