示例#1
0
        public void term(string IP, int PORT, string message, int limit)
        {
            IpTest = new DataMGT();
            TcpClient     connection = new TcpClient(IP, PORT);  //Create new connection to IP and PORT
            NetworkStream stream     = connection.GetStream();   //Create a stream to pass the message
            StreamWriter  sw         = new StreamWriter(stream); //Create a steam writer to write to

            sw.Write(message);                                   //Write the message to the writer
            int i = 1;


            if (IpTest.newChar())
            {
            }
            else
            {
                sw.Write(IpTest.getchar());
                i++;
            }



            sw.Close();             //Close the stream writer since the message is writen so
            stream.Close();         //Close the stream
            connection.Close();     //Close the connection
        }
示例#2
0
        /// <summary>
        /// Read incoming data and send ACK
        /// </summary>
        /// <param name="ar"></param>
        public static void ReadCallback(IAsyncResult ar)
        {
            String content = String.Empty;

            _IpTest = new DataMGT();
            _myPI   = new OSIPI();

            Console.WriteLine("In ReadCallBack...");

            // Retrieve the state object and the handler socket
            // from the asynchronous state object.
            StateObject state   = (StateObject)ar.AsyncState;
            Socket      handler = state.workSocket;

            // Read data from the client socket.
            int bytesRead = handler.EndReceive(ar);

            if (bytesRead > 0)
            {
                Console.WriteLine("Bytes>0...");
                // There  might be more data, so store the data received so far.
                state.sb.Append(Encoding.ASCII.GetString(state.buffer, 0, bytesRead));

                // Check for end-of-file tag. If it is not there, read
                // more data.
                content = state.sb.ToString();
                string msg1 = "<ACK>";
                string msg2 = "<,RT=0,RB=0,TM=1,>";
                if (content.IndexOf("<EOF>") > -1)
                {
                    // All the data has been read from the

                    DateTime time   = DateTime.Now;            // Use current time
                    string   format = "MMM ddd d HH:mm yyyy";  // Use this format
                    Console.WriteLine(time.ToString(format));
                    Console.WriteLine("Read {0} bytes from socket. \n Data : {1}", content.Length, content);
                    // Echo the data back to the client
                    try
                    {
                        _IpTest.gotString(content);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("IPTest Error: {0} \n", ex.Message);
                    }


                    Send(handler, msg1);
                    //Send(handler, content);
                }
                else
                {
                    // Not all data received. Get more.
                    handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReadCallback), state);
                }
            }
        }
示例#3
0
        public static void ReadCallback(IAsyncResult ar)
        {
            String content = String.Empty;
            _IpTest = new DataMGT();
            _myPI = new OSIPI();

            Console.WriteLine("In ReadCallBack...");

            // Retrieve the state object and the handler socket
            // from the asynchronous state object.
            StateObject state = (StateObject)ar.AsyncState;
            Socket handler = state.workSocket;

            // Read data from the client socket.
            int bytesRead = handler.EndReceive(ar);

            if (bytesRead > 0)
            {
                Console.WriteLine("Bytes>0...");
                // There  might be more data, so store the data received so far.
                state.sb.Append(Encoding.ASCII.GetString(state.buffer, 0, bytesRead));

                // Check for end-of-file tag. If it is not there, read
                // more data.
                content = state.sb.ToString();
                string msg1 = "<ACK>";
                string msg2 = "<,RT=0,RB=0,TM=1,>";
                if (content.IndexOf("<EOF>") > -1)
                {
                    // All the data has been read from the

                    DateTime time = DateTime.Now;              // Use current time
                    string format = "MMM ddd d HH:mm yyyy";    // Use this format
                    Console.WriteLine(time.ToString(format));
                    Console.WriteLine("Read {0} bytes from socket. \n Data : {1}", content.Length, content);
                    // Echo the data back to the client
                    try
                    {
                        _IpTest.gotString(content);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("IPTest Error: {0} \n",ex.Message);
                    }

                    Send(handler, msg1);
                    //Send(handler, content);

                }
                else
                {
                    // Not all data received. Get more.
                    handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReadCallback), state);
                }
            }
        }
示例#4
0
        public void term(string IP, int PORT, string message, int limit)
        {
            IpTest = new DataMGT();
            TcpClient connection = new TcpClient(IP, PORT);     //Create new connection to IP and PORT
            NetworkStream stream = connection.GetStream();      //Create a stream to pass the message
            StreamWriter sw = new StreamWriter(stream);         //Create a steam writer to write to

            sw.Write(message);      //Write the message to the writer
            int i = 1;

                if (IpTest.newChar())
                {
                }
                else
                {
                    sw.Write(IpTest.getchar());
                    i++;
                }

            sw.Close();             //Close the stream writer since the message is writen so
            stream.Close();         //Close the stream
            connection.Close();     //Close the connection
        }