Esempio n. 1
0
 private void server_data_arrival(easy_socket.udp.Socket_Server s, easy_socket.udp.EventArgs_ReceiveDataSocketUDP e)
 {
     System.Net.IPEndPoint ipep = (System.Net.IPEndPoint)e.remote_host_EndPoint;
     if (!this.textBox_telnet.Text.EndsWith("\r\n"))
     {
         this.textBox_telnet_add("\r\n");
     }
     this.textBox_telnet_add("Data from " + ipep.Address + " port " + ipep.Port.ToString() + " :\r\n");
     if (this.checkBox_rcv_hexa_data.Checked)
     {
         this.textBox_telnet_add(easy_socket.hexa_convert.byte_to_hexa(e.buffer, " ") + " ");
     }
     else
     {
         string strdata = System.Text.Encoding.Default.GetString(e.buffer, 0, e.buffer_size);
         this.textBox_telnet_add(strdata);
     }
     if (this.b_server_only)
     {
         //update remote host
         this.myremoteip   = ((System.Net.IPEndPoint)e.remote_host_EndPoint).Address.ToString();
         this.myremoteport = ((System.Net.IPEndPoint)e.remote_host_EndPoint).Port;
     }
     if (echo_server)
     {
         srv.send(e.buffer, e.remote_host_EndPoint);
     }
 }
Esempio n. 2
0
 private void server_stopped(easy_socket.udp.Socket_Server s, System.EventArgs e)
 {
     if (!this.textBox_telnet.Text.EndsWith("\r\n"))
     {
         this.textBox_telnet_add("\r\n");
     }
     this.textBox_telnet_add("Server stopped.\r\n");
     this.enable_state(false);
 }
Esempio n. 3
0
 private void remote_host_unreachable(easy_socket.udp.Socket_Server s, System.EventArgs e)
 {
     if (this.textBox_telnet.Text != "")
     {
         if (!this.textBox_telnet.Text.EndsWith("\r\n"))
         {
             this.textBox_telnet_add("\r\n");
         }
     }
     this.textBox_telnet_add("Remote host unreachable.\r\n");
 }
Esempio n. 4
0
 private void server_error(easy_socket.udp.Socket_Server s, easy_socket.udp.EventArgs_Exception e)
 {
     if (this.textBox_telnet.Text != "")
     {
         if (!this.textBox_telnet.Text.EndsWith("\r\n"))
         {
             this.textBox_telnet_add("\r\n");
         }
     }
     this.textBox_telnet_add("Error: " + e.exception.Message + "\r\n");
     this.enable_state(false);
 }
Esempio n. 5
0
        private void socket_event_Socket_Server_Remote_Host_Unreachable(easy_socket.udp.Socket_Server sender, EventArgs e)
        {
            int res = System.Threading.WaitHandle.WaitAny(this.HexaViewWaitHandles);

            if (res == 0) // close event
            {
                return;
            }
            this.add_info("Remote Host Unreachable");
            this.refresh_data();
            this.evtNotWrittingData.Set();
        }
Esempio n. 6
0
        private void socket_event_Socket_Server_Started(easy_socket.udp.Socket_Server sender, EventArgs e)
        {
            int res = System.Threading.WaitHandle.WaitAny(this.HexaViewWaitHandles);

            if (res == 0) // close event
            {
                return;
            }
            this.add_info("Server Started (" + sender.local_ip + ":" + sender.local_port.ToString() + ")");
            this.refresh_data();
            this.evtNotWrittingData.Set();
        }
Esempio n. 7
0
        private void socket_event_Socket_Server_Error(easy_socket.udp.Socket_Server sender, easy_socket.udp.EventArgs_Exception e)
        {
            int res = System.Threading.WaitHandle.WaitAny(this.HexaViewWaitHandles);

            if (res == 0) // close event
            {
                return;
            }

            this.add_info("Socket Error: " + e.exception.Message);
            this.refresh_data();
            this.evtNotWrittingData.Set();
        }
Esempio n. 8
0
        public void new_udp_interactive(string local_ip, int local_port, string remote_ip, int remote_port)
        {
            this.evtNotWrittingData  = new System.Threading.AutoResetEvent(true);
            this.evtStop             = new System.Threading.ManualResetEvent(false);
            this.HexaViewWaitHandles = new System.Threading.WaitHandle[] { this.evtStop, this.evtNotWrittingData };

            this.remote_server_ip   = remote_ip;
            this.remote_server_port = remote_port;
            this.Text = "Transfer to UDP server " + this.remote_server_ip + ":" + this.remote_server_port.ToString();

            this.socket = new easy_socket.udp.Socket_Server(local_ip, local_port);
            this.add_events();
            this.socket.start();
        }
Esempio n. 9
0
 private void server_started(easy_socket.udp.Socket_Server s, System.EventArgs e)
 {
     if (this.textBox_telnet.Text != "")
     {
         if (!this.textBox_telnet.Text.EndsWith("\r\n"))
         {
             this.textBox_telnet_add("\r\n");
         }
     }
     this.textBox_telnet_add("Server started.\r\n");
     if (srv != null && this.button_send.Text == "Send")// only if client/server
     {
         this.Text += " Local port: " + srv.local_port.ToString();
     }
 }
Esempio n. 10
0
        public void new_udp_server(string remote_ip, int remote_port, int local_port)
        {
            echo_server = false;

            this.Text = "UDP Client/Server Remote host IP: " + remote_ip + " Port: " + remote_port.ToString();

            myremoteip         = remote_ip;
            myremoteport       = remote_port;
            myport             = local_port;
            srv                = new easy_socket.udp.Socket_Server(local_port);
            this.b_server_only = false;
            add_events();
            srv.start();
            this.enable_state(true);
        }
Esempio n. 11
0
        public void new_udp_server(string ip, int port, bool echo)
        {
            this.button_send.Text = "Reply";
            echo_server           = echo;

            if (ip == "")
            {
                this.Text = "UDP Server Port: " + port.ToString();
            }
            else
            {
                this.Text = "UDP Server IP: " + ip + " Port: " + port.ToString();
            }
            myremoteip         = "127.0.0.1";
            myport             = port;
            myremoteport       = 6000;
            this.b_server_only = true;
            srv = new easy_socket.udp.Socket_Server(ip, port);
            add_events();
            srv.start();
            this.enable_state(true);
        }
Esempio n. 12
0
        private void socket_event_Socket_Server_Data_Arrival(easy_socket.udp.Socket_Server sender, easy_socket.udp.EventArgs_ReceiveDataSocketUDP e)
        {
            int res = System.Threading.WaitHandle.WaitAny(this.HexaViewWaitHandles);

            if (res == 0) // close event
            {
                return;
            }

            System.Drawing.Color color = System.Drawing.Color.Black;
            bool b_transmit            = false;

            System.Net.IPEndPoint ipep = (System.Net.IPEndPoint)e.remote_host_EndPoint;
            // if data comes from remote server, transfer data to last client
            if ((ipep.Address.ToString() == this.remote_server_ip) && (ipep.Port == this.remote_server_port))
            {
                if (b_last_client)
                {
                    // transfer data if required
                    if (this.radioButton_srv_to_clt_allow.Checked)
                    {
                        b_transmit = true;
                    }
                    else if (this.radioButton_srv_to_clt_block.Checked)
                    {
                        b_transmit = false;
                    }
                    else// query
                    {
                        string msg = "Do you want to allow the transfer of following data from " + ipep.Address + ":" + ipep.Port.ToString() + "?\r\n"
                                     + "Hexa Data:\r\n"
                                     + this.split_in_multiple_lines(easy_socket.hexa_convert.byte_to_hexa(e.buffer), 50)
                                     + "Text Data:\r\n"
                                     + this.split_in_multiple_lines(System.Text.Encoding.Default.GetString(e.buffer), 50);

                        b_transmit = (MessageBox.Show(this, msg, "Tcp Interactive", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes);
                    }
                    if (b_transmit)
                    {
                        this.socket.send(e.buffer, this.last_client_ip, this.last_client_port);
                        color = System.Drawing.Color.Black;
                    }
                    else
                    {
                        color = System.Drawing.Color.Red;
                    }
                }
                else
                {
                    color      = System.Drawing.Color.Red;
                    b_transmit = false;
                }
            }
            else// data is from a client, transfer it to remote server
            {
                // update info about last clt
                this.last_client_ip   = ipep.Address.ToString();
                this.last_client_port = ipep.Port;
                if (!this.b_last_client)
                {
                    this.b_last_client = true;
                }

                // transfer data if required
                if (this.radioButton_clt_to_srv_allow.Checked)
                {
                    b_transmit = true;
                }
                else if (this.radioButton_clt_to_srv_block.Checked)
                {
                    b_transmit = false;
                }
                else// query
                {
                    string msg = "Do you want to allow the transfer of following data from " + ipep.Address + ":" + ipep.Port.ToString() + "?\r\n"
                                 + "Hexa Data:\r\n"
                                 + this.split_in_multiple_lines(easy_socket.hexa_convert.byte_to_hexa(e.buffer), 50)
                                 + "Text Data:\r\n"
                                 + this.split_in_multiple_lines(System.Text.Encoding.Default.GetString(e.buffer), 50);
                    b_transmit = (MessageBox.Show(this, msg, "Tcp Interactive", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes);
                }
                if (b_transmit)
                {
                    this.socket.send(e.buffer, this.remote_server_ip, this.remote_server_port);
                    color = System.Drawing.Color.Blue;
                }
                else
                {
                    color = System.Drawing.Color.Violet;
                }
            }
            if (b_transmit)
            {
                this.add_info("Data from " + ipep.Address + ":" + ipep.Port.ToString().ToString());
            }
            else
            {
                this.add_info("Data from " + ipep.Address + ":" + ipep.Port.ToString() + "(Blocked)");
            }
            // color depends of sender && user action
            this.add_data(e.buffer, color);
            this.refresh_data();
            this.evtNotWrittingData.Set();
        }