Exemple #1
0
        /// <summary>
        /// Starts the TCP server and TCP client asynchronously
        /// </summary>
        protected void UnidirectionalConnectionTask()
        {
            if (!running || !autoReconnect)
            {
                return;
            }

            if ((tcpServer == null) || (tcpClient == null))
            {
                ConfigureSockets();
            }

            if ((tcpServer.Port != portIn) || tcpClient.Port != portOut)
            {
                ConfigureSockets();
            }

            while (!tcpServer.Started || !tcpClient.IsOpen)
            {
                if (!tcpServer.Started)
                {
                    try
                    {
                        tcpServer.Port       = portIn;
                        tcpServer.BufferSize = DEFAULT_BUFFER_SIZE;
                        tcpServer.Start();
                        //Console("TCP Server Started");
                        OnStatusChanged();
                    }
                    catch
                    {
                        //Console("Can not start Tcp Server");
                    }
                }

                if (!tcpClient.IsOpen)
                {
                    try
                    {
                        tcpClient.Connect();
                        //Console("Local client connected to remote server");
                    }
                    catch
                    {
                        //Console("Cannot connect with remote server");
                    }
                }

                if (!tcpServer.Started || !tcpClient.IsOpen)
                {
                    Thread.Sleep(500);
                }
                //Thread.Sleep(500);
            }
        }
Exemple #2
0
        private void btnClientConnect_Click(object sender, EventArgs e)
        {
            if (!client.IsOpen)
            {
                try
                {
                    int       port;
                    IPAddress address;

                    if (!Int32.TryParse(txtClientPort.Text, out port))
                    {
                        MessageBox.Show("Invalid port", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    if (!IPAddress.TryParse(txtClientIp.Text, out address))
                    {
                        MessageBox.Show("Invalid server ip address", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    client.Port          = port;
                    client.ServerAddress = address;
                    client.Connect();
                }
                catch
                {
                    return;
                }
                txtClientIp.AutoCompleteCustomSource.Add(txtClientIp.Text);
                txtClientPort.AutoCompleteCustomSource.Add(txtClientPort.Text);
                btnClientConnect.Text    = "Disconnect";
                txtClientPort.Enabled    = false;
                txtClientInput.Enabled   = true;
                btnClientSend.Enabled    = true;
                txtClientIp.Enabled      = false;
                txtClientConsole.Enabled = true;
            }
            else
            {
                try
                {
                    client.Disconnect();
                }
                catch
                {
                    return;
                }
                btnClientConnect.Text    = "Connect";
                txtClientPort.Enabled    = true;
                txtClientInput.Enabled   = false;
                btnClientSend.Enabled    = false;
                txtClientIp.Enabled      = true;
                txtClientConsole.Enabled = false;
            }
        }