Example #1
0
 protected void socket_data_arrival(easy_socket.tcp.Socket_Data sender, easy_socket.tcp.EventArgs_ReceiveDataSocket e)
 {
     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);
         // if telnet protocol
         #region telnet protocol
         if (this.b_telnet_protocol)
         {
             // data to show
             byte[][] reply_array = this.telnet.parse(strdata);
             if (reply_array != null)
             {
                 for (int cnt = 0; cnt <= reply_array.GetUpperBound(0); cnt++)
                 {
                     this.clt.send(reply_array[cnt]);
                 }
             }
         }
         #endregion
         else if (strdata.Length > 0)
         {
             this.textBox_telnet_add(strdata);
         }
     }
 }
        protected void socket_data_arrival(easy_socket.tcp.Socket_Data sender, easy_socket.tcp.EventArgs_ReceiveDataSocket e)
        {
            string strdata = System.Text.Encoding.Default.GetString(e.buffer, 0, e.buffer_size);

            this.textBox_telnet_add(strdata + "\r\n");
        }
        protected void socket_data_arrival(easy_socket.tcp.Socket_Data sender, easy_socket.tcp.EventArgs_ReceiveDataSocket e)
        {
            int res;

            System.Threading.WaitHandle[] mHexaViewWaitHandles = new System.Threading.WaitHandle[] { this.evtStop, this.evtConnectedToServer };

            // if sender is client
            if (sender == this.socket_to_clt)
            {
                // wait to be connected to server before trying to translate data
                res = System.Threading.WaitHandle.WaitAny(mHexaViewWaitHandles);
                if (res == 0) // close event
                {
                    return;
                }
            }

            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;

            if (sender == this.socket_to_clt)
            {
                // 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 " + sender.RemoteIP + ":" + sender.RemotePort.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_to_srv.send(e.buffer);
                    color = System.Drawing.Color.Blue;
                }
                else
                {
                    color = System.Drawing.Color.Violet;
                }
            }
            else
            {
                // 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 " + sender.RemoteIP + ":" + sender.RemotePort.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_to_clt.send(e.buffer);
                    color = System.Drawing.Color.Black;
                }
                else
                {
                    color = System.Drawing.Color.Red;
                }
            }
            if (b_transmit)
            {
                this.add_info("Data from " + sender.RemoteIP + ":" + sender.RemotePort.ToString());
            }
            else
            {
                this.add_info("Data from " + sender.RemoteIP + ":" + sender.RemotePort.ToString() + "(Blocked)");
            }
            // color depends of sender && user action
            this.add_data(e.buffer, color);
            this.refresh_data();
            this.evtNotWrittingData.Set();
        }
 private void socket_event_Socket_Data_DataArrival(easy_socket.tcp.Socket_Data sender, easy_socket.tcp.EventArgs_ReceiveDataSocket e)
 {
     this.hevt_data_arrival.Set();
     this.last_data = e.buffer;
     if (this.ConnectionState == PROXY_CONNECTION_STATE.READY_TO_SEND_USER_DATA)
     {
         if (this.event_ClassProxy_DataArrival != null)
         {
             this.event_ClassProxy_DataArrival(this, e);
         }
     }
 }