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 }
/// <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); } } }
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); } } }