2013-03-13 44 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