private void StartListen() { Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); var listenAddress = new IPEndPoint(IPAddress.Any, 8552); listener.Bind(listenAddress); var udpPack = new UDPPack() { buffer = new byte[1024], listener = listener }; EndPoint ep = (EndPoint)listenAddress; listener.BeginReceiveFrom(udpPack.buffer, 0, 1024, SocketFlags.None, ref ep, EndRecv, udpPack); }
private void EndRecv(IAsyncResult result) { var context = result.AsyncState as UDPPack; EndPoint recv = new IPEndPoint(IPAddress.Broadcast, 8552); int recvCount = context.listener.EndReceiveFrom(result, ref recv); if (recvCount > 0) { var str = Encoding.ASCII.GetString(context.buffer, 0, recvCount); this.Invoke((Action)( () => { this.textBox1.Text += (DateTime.Now.ToString() + ":" + str + "\r\n"); })); } var listener = context.listener; var udpPack = new UDPPack() { buffer = new byte[1024], listener = listener }; var ep = (EndPoint) new IPEndPoint(IPAddress.Any, 8552); listener.BeginReceiveFrom(udpPack.buffer, 0, 1024, SocketFlags.None, ref ep, EndRecv, udpPack); }