2010-01-18 76 views
1

假设我有一个服务器套接字监听端口号5010.当客户端尝试使用connect()API连接到此服务器套接字时,服务器接受accept()API中的套接字连接。服务器/客户端使用套接字编程

accept()API返回一个用于服务器/客户端连接的新套接字。现在,服务器和客户端之间的所有数据传输均使用此新创建的套接字完成数据传输是否发生在相同的端口5010上。如果不是,由于accept()API返回新套接字时如何选择端口?

回答

1

服务器和客户端套接字之间的连接由元组(serverAddress, serverPort, clientAddress, clientPort)标识。服务器地址和服务器端口始终保持不变(显然)。即使重复使用相同的地址(例如当同一台机器上有多个客户端时),客户端也会分配(半)随机“源”端口以避免冲突。

+0

这是否意味着如果有五个客户端连接到服务器,则每个客户端仅将数据发送到端口5010。服务器如何区分哪些客户端数据即将到来? – cppdev 2010-01-18 17:46:10

+0

该元组的第二部分(客户端IP,客户端端口)。 – 2010-01-19 14:43:44

相关问题