public void Bind (
EndPoint localEP
)
如果需要使用特定的本地终结点,请使用 Bind 方法。必须先调用 Bind,然后才能调用 Listen 方法。除非需要使用特定的本地终结点,否则不必在使用 Connect 方法之前调用 Bind。对无连接和面向连接的协议都可以使用 Bind 方法。
在调用 Bind 之前,必须首先创建打算从其进行数据通信的本地 IPEndPoint。如果您不介意分配哪个本地地址,则可以用 IPAddress.Any 作为地址参数创建一个 IPEndPoint,这样,基础服务提供程序将会分配最适合的网络地址。如果您有多个网络接口,这将有助于简化您的应用程序。如果您不介意使用哪个本地端口,则可以创建一个使用
0
作为端口号的 IPEndPoint。在这种情况下,服务提供程序将会分配一个可用的端口号(介于
1024 和 5000 之间)。
如果使用上面的方法,您可以通过调用 LocalEndPoint 获知所分配的本地网络地址和端口号。如果当前使用的是面向连接的协议,则直到您调用了 Connect 或 EndConnect 方法后,LocalEndPoint 才会返回本地分配的网络地址。如果当前使用的是无连接协议,则直到完成一个发送或接收操作后,才可访问该信息。
注意:1.如果打算接收多路广播的数据报,则必须使用多路广播端口号调用 Bind 方法。
2.如果打算通过使用 ReceiveFrom 方法来接收无连接的数据报,则必须调用 Bind 方法。
3.如果在调用 Bind 方法时接收到 SocketException,则可以使用 SocketException.ErrorCode 属性获取特定的错误代码。获取此代码后,您可以参考
MSDN Library 中的 Windows Sockets 第 2 版 API
错误代码文档,获取有关该错误的详细说明。
4.当在应用程序中启用网络跟踪功能后,此成员将输出跟踪信息。有关更多信息,请参见 网络跟踪。
异常说明:
如果不进行端口绑定,发送数据时端口是随机选择的,尤其是在服务器端,你需要用Bind()方法绑定所指定的端口,使socket与一个本地终结点相连。
加载中,请稍候......