Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public partial class frmServer : Form
- {
- NamedPipeServerStream serverPipe = new NamedPipeServerStream("serverPipe");
- NamedPipeClientStream clientPipe = new NamedPipeClientStream("clientPipe");
- StreamReader reader;
- StreamWriter writer;
- byte[] ServerByte;
- string msgStr;
- string msg = String.Empty;
- public frmServer()
- {
- InitializeComponent();
- }
- private void btnStart_Click(object sender, EventArgs e)
- {
- this.Text = "Waiting for a connection";
- reader = new StreamReader(clientPipe, Encoding.UTF8);
- writer = new StreamWriter(serverPipe, Encoding.UTF8);
- clientPipe.Connect();
- serverPipe.WaitForConnection();
- if (serverPipe.IsConnected)
- {
- this.Text = "You are connected Server!";
- btnStart.Enabled = false;
- btnSend.Enabled = true;
- txtBoxMsg.Focus();
- backgroundWorkerReceiveMessage.RunWorkerAsync();
- }
- }
- private void btnSend_Click(object sender, EventArgs e)
- {
- msg = txtBoxMsg.Text;
- this.lstBoxChat.Items.Add("[SENT:] " + msg);
- startBackgroundWorker(msg);
- this.txtBoxMsg.Clear();
- txtBoxMsg.Focus();
- }
- private void backgroundWorkerServer_DoWork(object sender, DoWorkEventArgs e)
- {
- //Byte[] msgByte = System.Text.Encoding.GetEncoding("windows-1256").GetBytes(msg);
- //serverPipe.Write(msgByte, 0, msg.Length);
- writer.Write(msg);
- writer.AutoFlush = true;
- }
- private void startBackgroundWorker(string msg)
- {
- backgroundWorkerServer.RunWorkerAsync(msg);
- }
- private void backgroundWorkerReceiveMessage_DoWork(object sender, DoWorkEventArgs e)
- {
- ServerByte = new Byte[1000];
- int i;
- for (i = 0; i < ServerByte.Length; i++)
- {
- ServerByte[i] = 0x20;
- }
- clientPipe.Read(ServerByte, 0, ServerByte.Length);
- msgStr = System.Text.Encoding.GetEncoding("windows-1256").GetString(ServerByte);
- backgroundWorkerReceiveMessage.ReportProgress(i, msgStr);
- }
- private void backgroundWorkerReceiveMessage_ProgressChanged(object sender, ProgressChangedEventArgs e)
- {
- string message = (string)e.UserState;
- lstBoxChat.Items.Add("[RECEIVED] " + message);
- }
- private void backgroundWorkerReceiveMessage_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
- {
- //MessageBox.Show("Message received");
- if (clientPipe.IsConnected)
- {
- backgroundWorkerReceiveMessage.RunWorkerAsync();
- }
- else
- {
- MessageBox.Show("Connection lost");
- }
- }
- }
- }
- public partial class frmChatClient : Form
- {
- NamedPipeClientStream receiverPipe = new NamedPipeClientStream("serverPipe");
- NamedPipeServerStream senderPipe = new NamedPipeServerStream("clientPipe");
- StreamReader reader;
- StreamWriter writer;
- string msg = String.Empty;
- string msgStr;
- byte[] ClientByte;
- public frmChatClient()
- {
- InitializeComponent();
- }
- private void frmChatClient_Load(object sender, EventArgs e)
- {
- }
- private void btnStart_Click(object sender, EventArgs e)
- {
- this.Text = "Waiting for a connection";
- reader = new StreamReader(receiverPipe, Encoding.UTF8);
- writer = new StreamWriter(senderPipe, Encoding.UTF8);
- receiverPipe.Connect();
- senderPipe.WaitForConnection();
- if (senderPipe.IsConnected)
- {
- this.Text = "You are connected!";
- btnStart.Enabled = false;
- btnSend.Enabled = true;
- txtBoxMsg.Focus();
- startWorker1();
- }
- }
- private void btnSend_Click(object sender, EventArgs e)
- {
- msg = txtBoxMsg.Text;
- this.lstBoxChat.Items.Add("[SENT:] " + msg);
- backgroundWorkerSendMessage.RunWorkerAsync(msg);
- this.txtBoxMsg.Clear();
- }
- private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
- {
- //ClientByte = new Byte[1000];
- //int i;
- //for (i = 0; i < ClientByte.Length; i++)
- //{
- // ClientByte[i] = 0x20;
- //}
- //receiverPipe.Read(ClientByte, 0, ClientByte.Length);
- //msgStr = System.Text.Encoding.GetEncoding("windows-1256").GetString(ClientByte);
- // msgStr = reader.ReadLine();
- backgroundWorker1.ReportProgress(0, reader.ReadLine());
- }
- private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
- {
- string message = (string)e.UserState;
- lstBoxChat.Items.Add("[RECEIVED]: " + message);
- }
- private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
- {
- // MessageBox.Show("finished");
- if (receiverPipe.IsConnected)
- {
- startWorker1();
- }
- else
- {
- MessageBox.Show("Connection lost");
- }
- }
- private void startWorker1()
- {
- backgroundWorker1.RunWorkerAsync();
- }
- private void backgroundWorkerSendMessage_DoWork(object sender, DoWorkEventArgs e)
- {
- Byte[] msgByte = System.Text.Encoding.GetEncoding("windows-1256").GetBytes(msg);
- senderPipe.Write(msgByte, 0, msg.Length);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement