本文介绍 Windows Sockets 中使用的术语“端口”和“地址”。
端口
端口标识唯一的进程,一个进程可以有一个服务。在当前的上下文中,端口与支持 Windows Sockets 的应用程序关联。之所以关联,是为了唯一标识每个 Windows Sockets 应用程序,以便可以在一台计算机上同时运行多个 Windows Sockets 应用程序。
某些端口专为公共服务(如 FTP)保留。除非您正在提供此类公共服务,否则应避免使用那些端口。Windows Sockets 规范详细说明了这些保留的端口。WINSOCK.H 文件也列出了这些端口。
若要让 Windows Sockets DLL 为您选择可用的端口,请传递 0 作为端口值。MFC 将选择一个大于十进制数 1,024 的端口值。可以通过调用 CAsyncSocket::GetSockName 成员函数检索 MFC 选择的端口值。
套接字地址
每个套接字对象都与网络上的一个网际协议 (IP) 地址相关联。该地址通常是计算机名称,如“ftp.microsoft.com”,或是以点分隔的数字,如“128.56.22.8”。
当您寻求创建套接字时,通常不必指定自己的地址。
注意计算机可能有多个网卡(或应用程序某天可能运行在这样的计算机上),而每个网卡表示一个不同的网络。如果是这样,您可能需要给出一个地址以指定套接字将使用哪个网卡。这必然会成为一个高级用法并且可能导致可移植性问题。
网友评论