любая помощь / обратная связь будет оценена. Я разрабатываю приемник широковещательного клиента так, чтобы он получал данные, поступающие с сервера. клиент отправляет и получает данные в асинхронном режиме. другими словами, я использую методы, такие как socket.BeginReceiveFrom () и socket.BeginSendTo ()
Тем не менее, я хотел бы как-то получить IP-адрес сервера, но когда я использую метод RemoteEndPoint (), чтобы получить IP-адрес сервера, я получаю ошибки. Часть кода показана ниже.
private void Form1_Load(object sender, EventArgs e) {
byteData = msgToSend.ToByte();
clientSocket.BeginSendTo(byteData, 0, byteData.Length, SocketFlags.None, epServer, new AsyncCallback(OnSend), null);
byteData = new byte[1024];
//Start listening to the data asynchronously
clientSocket.BeginReceiveFrom (byteData,0, byteData.Length,SocketFlags.None,ref epServer,new AsyncCallback(OnReceive),null);
}
private void OnReceive(IAsyncResult ar) {
try {
clientSocket.EndReceive(ar);
byteData = new byte[1024];
// HERE MY CODE TO FIND THE IP ADDRESS OF THE SERVER
IPEndPoint ip = (IPEndPoint)epServer.RemoteEndPoint;
MessageBox.Show(Convert.ToString(ip.Address));
//Start listening to receive more data from the user
clientSocket.BeginReceiveFrom(byteData, 0, byteData.Length, SocketFlags.None, ref epServer,new AsyncCallback(OnReceive), null);
} catch (ObjectDisposedException) {
} catch (Exception ex) {
MessageBox.Show(ex.Message, "SGSclient: " + strName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}