Socket.Bind(EndPoint) 方法

定义

使 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
EndPoint

要与 EndPoint 关联的本地 Socket

例外

localEPnull

尝试访问套接字时出错。

调用堆栈中的较高调用方无权执行所请求的操作。

示例

下面的代码示例使用指定的本地终结点绑定 Socket

try
{
   aSocket->Bind( anEndPoint );
}
catch ( Exception^ e ) 
{
   Console::WriteLine( "Winsock error: {0}", e );
}
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 方法。 无需在使用 方法之前调用 BindConnect 除非需要使用特定的本地终结点。 可以在 Bind 无连接协议和面向连接的协议上使用 方法。

在调用 Bind之前,必须先创建要从中传达数据的本地 IPEndPoint 。 如果不关心分配哪个本地地址,可以使用 作为地址参数创建 IPEndPointIPAddress.Any ,基础服务提供商将分配最合适的网络地址。 如果有多个网络接口,这可能有助于简化应用程序。 如果不关心使用哪个本地端口,可以使用 0 为端口号创建 IPEndPoint 。 在这种情况下,服务提供商将分配介于 1024 和 5000 之间的可用端口号。

如果使用上述方法,可以通过调用 LocalEndPoint来发现已分配的本地网络地址和端口号。 如果使用的是面向连接的协议, LocalEndPoint 则在调用 ConnectEndConnect 方法之前,不会返回本地分配的网络地址。 如果使用无连接协议,则在完成发送或接收之前,您将无法访问此信息。

如果 UDP 套接字想要接收有关已接收数据包的接口信息, SetSocketOption 则应在调用 方法后立即将套接字选项设置为 PacketInformation 时显式调用 Bind 方法。

注意

如果打算接收多播数据报,则必须使用多播端口号调用 Bind 方法。

注意

如果打算使用 ReceiveFrom 方法接收无连接数据报,则必须调用 Bind 方法。

注意

如果在调用 Bind 方法时收到 SocketException ,请使用 SocketException.ErrorCode 属性获取特定的错误代码。 获取此代码后,请参阅 Windows 套接字版本 2 API 错误代码 文档,获取错误的详细说明。

备注

当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪

适用于

另请参阅