/// <summary> /// event listener for client textbox in chatlib or executor /// </summary> /// <param name="clientText"></param> private void Executor_ClientText(string clientText) { clientText = ClientInputTextBox.Text; stream = client.GetStream(); Byte[] data = System.Text.Encoding.ASCII.GetBytes(clientText); // Get a client stream for reading and writing. stream = client.GetStream(); // Send the message to the connected TcpServer. stream.Write(data, 0, data.Length); if (ClientServerOuputTextBox.InvokeRequired) { MethodInvoker invoker = new MethodInvoker(delegate() { //Executor.LoggingText(logFileName, " - Client: " + ClientInputTextBox.Text); chatLog.MakeLog(" - Client: " + ClientInputTextBox.Text); ClientServerOuputTextBox.AppendText("Client: " + ClientInputTextBox.Text + Executor.LineBreak()); ClientInputTextBox.Clear(); }); ClientServerOuputTextBox.Invoke(invoker); } else { //Executor.LoggingText(logFileName, " - Client: " + ClientInputTextBox.Text); chatLog.MakeLog(" - Client: " + ClientInputTextBox.Text); ClientServerOuputTextBox.AppendText("Client: " + ClientInputTextBox.Text + Executor.LineBreak()); ClientInputTextBox.Clear(); } //Responding to the end of the task. if (SendButton.Enabled == false) { if (SendButton.InvokeRequired) { MethodInvoker invoker = new MethodInvoker(delegate() { SendButton.Enabled = true; }); SendButton.Invoke(invoker); } else { SendButton.Enabled = true; } } }
/// <summary> /// event listener for server textbox in chatlib or executor /// </summary> /// <param name="serverText"></param> /*private void Executor_ServerText(object sender, CustomEventArgs e)*/ private void Executor_ServerText(object sender, CustomEventArgs e) { while (client.Connected) { Byte[] responseByte = new Byte[256]; stream = client.GetStream(); //String to store the response ASCII representation. String responseData = String.Empty; //fill parameter with server text /*e.Text = responseData;*/ e.Text = responseData; // if server sent message try { if (stream.DataAvailable == true) { //Read the first batch of the TcpServer response bytes. Int32 bytes = stream.Read(responseByte, 0, responseByte.Length); responseData = System.Text.Encoding.ASCII.GetString(responseByte, 0, bytes); if (ClientServerOuputTextBox.InvokeRequired) { MethodInvoker invoker = new MethodInvoker(delegate() { //Executor.LoggingText(logFileName, " - Server: " + responseData); chatLog.MakeLog(" - Server: " + responseData); ClientServerOuputTextBox.AppendText("Server: " + responseData + Executor.LineBreak()); }); ClientServerOuputTextBox.Invoke(invoker); } else { //Executor.LoggingText(logFileName, " - Server: " + responseData); chatLog.MakeLog(" - Server: " + responseData); ClientServerOuputTextBox.AppendText("Server: " + responseData + Executor.LineBreak()); } } } catch (Exception) { } } }
/// <summary> /// Disconnect from server /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DisconnectToolStripMenuItem_Click(object sender, EventArgs e) { if (client.Connected) { message = "Client has left"; stream = client.GetStream(); Byte[] data = System.Text.Encoding.ASCII.GetBytes(message); // Get a client stream for reading and writing. stream = client.GetStream(); // Send the message to the connected TcpServer. stream.Write(data, 0, data.Length); stream.Close(); client.Close(); Executor.LoggingText(logFileName, " - Client Disconnected. Chat session ended " + Executor.LineBreak()); ClientServerOuputTextBox.AppendText("Client Disconnected" + Executor.LineBreak()); } }
/// <summary> /// Connect to server /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ConnectToolStripMenuItem_Click(object sender, EventArgs e) { System.Net.IPAddress ipAddress = System.Net.IPAddress.Parse("127.0.0.1"); client = new TcpClient(); IPEndPoint iPEnd = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 13000); try { client.Connect(iPEnd); if (client.Connected) { //call create logging txt file from library logFileName = Executor.LoggingFile(logFileName); ClientServerOuputTextBox.AppendText("Client Connected " + Executor.LineBreak()); } } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } }