1
我希望对此问题提供任何帮助/反馈。我正在C#中开发一个异步套接字连接,我想设置一个广播客户端接收器,使其广播本地网络服务器,然后它从本地服务器接收消息。主要问题是首先我想从一个客户端向不同的服务器进行广播,然后从所有服务器中检索IP地址。这里是客户端代码的一部分。也服务器端工作正常。异步客户端广播接收器
public void ButtonConnectOnClick()
{
// Init socket Client
newsock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
newsock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
IPAddress ipAddress = IPAddress.Broadcast; //Parse(txtServerIP.Text);
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, BROADCASTPORT);
epServer = (EndPoint)ipEndPoint;
string tmp = "hello";
byteData = Encoding.ASCII.GetBytes(tmp);
newsock.BeginSendTo(byteData, 0, byteData.Length, SocketFlags.None, epServer, new AsyncCallback(OnSend), null);
byteData = new byte[1024];
newsock.BeginReceiveFrom(byteData, 0, byteData.Length, SocketFlags.None, ref epServer, new AsyncCallback(OnReceive), null);
}
private void OnSend(IAsyncResult ar)
{
try
{
newsock.EndSend(ar);
}
catch (ObjectDisposedException)
{ }
catch (Exception ex)
{
MessageBox.Show(ex.Message, null, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void OnReceive(IAsyncResult ar)
{
try
{
newsock.EndReceive(ar);
byteData = new byte[1024];
//Start listening to receive more data from the user
newsock.BeginReceiveFrom(byteData, 0, byteData.Length, SocketFlags.None, ref epServer, new AsyncCallback(OnReceive), null);
}
catch (ObjectDisposedException)
{ }
catch (Exception ex)
{
MessageBox.Show(ex.Message, null, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
你见过这个网站通过'http:// meta.codereview.stackexchange.com /'? –