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.

Исключения

localEP имеет значение null.

Произошла ошибка при попытке доступа к сокету.

Socket был закрыт.

Вызывающий объект, находящийся выше в стеке вызовов, не имеет разрешения на запрошенную операцию.

Примеры

В следующем примере кода выполняется привязка с 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 если необходимо использовать определенную локальную конечную точку. Перед вызовом Listen метода необходимо вызвать Bind метод . Вам не нужно вызывать метод Bind перед использованием метода, Connect за исключением случаев, когда требуется использовать определенную локальную конечную точку. Метод можно использовать Bind как для протоколов без подключения, так и для протоколов, ориентированных на подключение.

Перед вызовом Bindнеобходимо сначала создать локальный объект IPEndPoint , из которого планируется передавать данные. Если вам не важно, какой локальный IPEndPoint адрес назначен, можно создать с помощью IPAddress.Any в качестве параметра address, а базовый поставщик услуг назначит наиболее подходящий сетевой адрес. Это может упростить работу приложения при наличии нескольких сетевых интерфейсов. Если вам не важно, какой локальный порт используется, можно создать IPEndPoint с помощью 0 для номера порта. В этом случае поставщик услуг назначит доступный номер порта в диапазоне от 1024 до 5000.

Если вы используете приведенный выше подход, вы можете узнать, какой адрес и номер порта были назначены локальной сети, вызвав .LocalEndPoint Если вы используете протокол, ориентированный на подключение, LocalEndPoint не будет возвращать локально назначенный сетевой адрес до тех пор, пока не будет выполнен вызов Connect метода или EndConnect . Если вы используете протокол без подключения, у вас не будет доступа к этой информации, пока вы не завершите отправку или получение.

Если сокет UDP хочет получать сведения об интерфейсе для полученных пакетов, SetSocketOption метод должен вызываться явным образом с параметром сокета, равным PacketInformation сразу после вызова Bind метода.

Примечание

Если вы планируете получать многоадресные датаграммы, необходимо вызвать Bind метод с номером порта многоадресной рассылки.

Примечание

Необходимо вызвать метод , Bind если планируется получать датаграммы без подключения с помощью ReceiveFrom метода .

Примечание

При получении SocketException при вызове Bind метода используйте SocketException.ErrorCode свойство , чтобы получить конкретный код ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.

Примечание

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети. Дополнительные сведения см. в статье Трассировка сети в платформа .NET Framework.

Применяется к

См. также раздел