private void ButtonStartClick(object sender, EventArgs e) { try { Int32 localPort; if (!Int32.TryParse(txtRemotePort.Text, out localPort)) { throw new Exception("Local port number is wrong."); } _socketServer = new SocketDatagramServer(localPort); _socketServer.Context = WindowsFormsSynchronizationContext.Current; _socketServer.ReceivedData += SocketServerReceivedData; _socketServer.SocketError += SocketServerSocketError; _socketServer.Error += SocketServerError; _socketServer.Start(); _sentBytes = 0; _receivedBytes = 0; _receivedTotalBytes = 0; RefreshStatusStrip(); EnableDisableButtonControls(false); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void SendDataBetweenOneUdpClientAndOneUdpServer() { var resetEvent = new ManualResetEvent(false); var address = IPAddress.Loopback; var port = 55555; var receivedData = new Byte[] { }; var client = new SocketDatagramClient(); var server = new SocketDatagramServer(port); server.ReceivedData += (s, e) => { receivedData = e.ReceivedData; resetEvent.Set(); }; server.Start(); client.Connect(address, port); client.SendData(_data); resetEvent.WaitOne(WAIT_TIMEOUT); server.Stop(); server.Dispose(); client.Dispose(); CollectionAssert.AreEqual(_data, receivedData); }