Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
        }