Socket.Bind(EndPoint) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将 a Socket 与本地终结点关联。
public:
void Bind(System::Net::EndPoint ^ localEP);
public void Bind(System.Net.EndPoint localEP);
member this.Bind : System.Net.EndPoint -> unit
Public Sub Bind (localEP As EndPoint)
参数
例外
localEP 是 null。
尝试访问套接字时出错。
调用堆栈中较高级别的调用方没有请求的作的权限。
示例
下面的代码示例使用指定的本地终结点绑定一个 Socket 。
try {
aSocket.Bind(anEndPoint);
}
catch (Exception e) {
Console.WriteLine("Winsock error: " + e.ToString());
}
Try
aSocket.Bind(anEndPoint)
Catch e As Exception
Console.WriteLine("Winsock error: " & e.ToString())
End Try
注解
Bind如果需要使用特定的本地终结点,请使用该方法。 必须先调用 Bind ,然后才能调用该方法 Listen 。 除非需要使用特定的本地终结点,否则在使用Connect该方法之前不需要调用Bind。 可以在 Bind 无连接协议和面向连接的协议上使用该方法。
在调用 Bind之前,必须先创建要从中传达数据的本地 IPEndPoint 。 如果你不关心分配了哪个本地地址,则可以创建一个 IPEndPoint 用作地址参数的地址 IPAddress.Any ,基础服务提供商将分配最合适的网络地址。 如果有多个网络接口,这可能有助于简化应用程序。 如果你不关心使用哪个本地端口,则可以为端口号创建 IPEndPoint 使用 0。 在这种情况下,服务提供商将在 1024 到 5000 之间分配可用的端口号。
如果使用上述方法,可以通过调用 LocalEndPoint 来发现已分配的本地网络地址和端口号。 如果使用面向连接的协议,则在调用Connect或EndConnect方法之前,LocalEndPoint不会返回本地分配的网络地址。 如果使用无连接协议,则在完成发送或接收之前,您将无法访问此信息。
如果 UDP 套接字想要接收接收的数据包的接口信息, SetSocketOption 则应使用套接字选项在 PacketInformation 调用 Bind 该方法后立即显式调用该方法。
注释
如果打算接收多播数据报,则必须使用多播端口号调用 Bind 该方法。
注释
如果要使用ReceiveFrom该方法接收无连接数据报,则必须调用Bind该方法。
注释
如果在调用Bind该方法时收到消息SocketException,请使用SocketException.ErrorCode该属性获取特定的错误代码。 获取此代码后,有关错误的详细说明,请参阅 Windows 套接字版本 2 API 错误代码 文档。
注释
在应用程序中启用网络跟踪时,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪。