예제 #1
0
        /// <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;
                }
            }
        }
예제 #2
0
        /// <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());
            }
        }