delegate void SafeDoListenerDeledate();
private void DoListen()
{
if (!textBox1.InvokeRequired)
{
bool done = false;
int listenPort = 10000;
UdpClient listener = new UdpClient(listenPort);
IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, listenPort);
try
{
while (!done)
{
textBox1.AppendText("Waiting for broadcast");
byte[] bytes = listener.Receive(ref groupEP);
textBox1.AppendText("Received broadcast from {0} :\n {1}\n" +
groupEP.ToString() +
Encoding.ASCII.GetString(bytes, 0, bytes.Length));
}
}
catch (Exception e)
{
textBox1.AppendText(e.ToString());
}
finally
{
listener.Close();
}
}
else
{
textBox1.Invoke(new SafeDoListenerDeledate(DoListen), new object[] { });
}
}
private void button1_Click(object sender, EventArgs e)
{
listenerThread = new Thread(new ThreadStart(DoListen));
listenerThread.Start();
}
}
|