Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.28 KB | None | 0 0
  1. public partial class frmServer : Form
  2. {
  3. NamedPipeServerStream serverPipe = new NamedPipeServerStream("serverPipe");
  4. NamedPipeClientStream clientPipe = new NamedPipeClientStream("clientPipe");
  5. StreamReader reader;
  6. StreamWriter writer;
  7.  
  8.  
  9. byte[] ServerByte;
  10. string msgStr;
  11. string msg = String.Empty;
  12.  
  13. public frmServer()
  14. {
  15. InitializeComponent();
  16. }
  17.  
  18. private void btnStart_Click(object sender, EventArgs e)
  19. {
  20.  
  21. this.Text = "Waiting for a connection";
  22. reader = new StreamReader(clientPipe, Encoding.UTF8);
  23. writer = new StreamWriter(serverPipe, Encoding.UTF8);
  24. clientPipe.Connect();
  25. serverPipe.WaitForConnection();
  26. if (serverPipe.IsConnected)
  27. {
  28. this.Text = "You are connected Server!";
  29. btnStart.Enabled = false;
  30. btnSend.Enabled = true;
  31. txtBoxMsg.Focus();
  32. backgroundWorkerReceiveMessage.RunWorkerAsync();
  33. }
  34.  
  35. }
  36.  
  37. private void btnSend_Click(object sender, EventArgs e)
  38. {
  39. msg = txtBoxMsg.Text;
  40. this.lstBoxChat.Items.Add("[SENT:] " + msg);
  41. startBackgroundWorker(msg);
  42. this.txtBoxMsg.Clear();
  43. txtBoxMsg.Focus();
  44. }
  45.  
  46.  
  47. private void backgroundWorkerServer_DoWork(object sender, DoWorkEventArgs e)
  48. {
  49. //Byte[] msgByte = System.Text.Encoding.GetEncoding("windows-1256").GetBytes(msg);
  50. //serverPipe.Write(msgByte, 0, msg.Length);
  51. writer.Write(msg);
  52. writer.AutoFlush = true;
  53. }
  54.  
  55. private void startBackgroundWorker(string msg)
  56. {
  57. backgroundWorkerServer.RunWorkerAsync(msg);
  58. }
  59.  
  60. private void backgroundWorkerReceiveMessage_DoWork(object sender, DoWorkEventArgs e)
  61. {
  62. ServerByte = new Byte[1000];
  63. int i;
  64. for (i = 0; i < ServerByte.Length; i++)
  65. {
  66. ServerByte[i] = 0x20;
  67. }
  68.  
  69.  
  70. clientPipe.Read(ServerByte, 0, ServerByte.Length);
  71.  
  72. msgStr = System.Text.Encoding.GetEncoding("windows-1256").GetString(ServerByte);
  73. backgroundWorkerReceiveMessage.ReportProgress(i, msgStr);
  74.  
  75.  
  76.  
  77. }
  78.  
  79. private void backgroundWorkerReceiveMessage_ProgressChanged(object sender, ProgressChangedEventArgs e)
  80. {
  81. string message = (string)e.UserState;
  82. lstBoxChat.Items.Add("[RECEIVED] " + message);
  83.  
  84. }
  85.  
  86. private void backgroundWorkerReceiveMessage_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
  87. {
  88. //MessageBox.Show("Message received");
  89. if (clientPipe.IsConnected)
  90. {
  91. backgroundWorkerReceiveMessage.RunWorkerAsync();
  92. }
  93. else
  94. {
  95. MessageBox.Show("Connection lost");
  96. }
  97.  
  98. }
  99. }
  100. }
  101.  
  102. public partial class frmChatClient : Form
  103. {
  104. NamedPipeClientStream receiverPipe = new NamedPipeClientStream("serverPipe");
  105. NamedPipeServerStream senderPipe = new NamedPipeServerStream("clientPipe");
  106. StreamReader reader;
  107. StreamWriter writer;
  108.  
  109.  
  110. string msg = String.Empty;
  111.  
  112. string msgStr;
  113.  
  114. byte[] ClientByte;
  115.  
  116. public frmChatClient()
  117. {
  118. InitializeComponent();
  119. }
  120.  
  121. private void frmChatClient_Load(object sender, EventArgs e)
  122. {
  123.  
  124. }
  125.  
  126. private void btnStart_Click(object sender, EventArgs e)
  127. {
  128.  
  129. this.Text = "Waiting for a connection";
  130. reader = new StreamReader(receiverPipe, Encoding.UTF8);
  131. writer = new StreamWriter(senderPipe, Encoding.UTF8);
  132. receiverPipe.Connect();
  133. senderPipe.WaitForConnection();
  134. if (senderPipe.IsConnected)
  135. {
  136. this.Text = "You are connected!";
  137. btnStart.Enabled = false;
  138. btnSend.Enabled = true;
  139. txtBoxMsg.Focus();
  140. startWorker1();
  141. }
  142. }
  143.  
  144. private void btnSend_Click(object sender, EventArgs e)
  145. {
  146. msg = txtBoxMsg.Text;
  147. this.lstBoxChat.Items.Add("[SENT:] " + msg);
  148. backgroundWorkerSendMessage.RunWorkerAsync(msg);
  149. this.txtBoxMsg.Clear();
  150.  
  151. }
  152.  
  153.  
  154.  
  155. private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
  156. {
  157.  
  158. //ClientByte = new Byte[1000];
  159. //int i;
  160. //for (i = 0; i < ClientByte.Length; i++)
  161. //{
  162. // ClientByte[i] = 0x20;
  163. //}
  164.  
  165.  
  166. //receiverPipe.Read(ClientByte, 0, ClientByte.Length);
  167. //msgStr = System.Text.Encoding.GetEncoding("windows-1256").GetString(ClientByte);
  168. // msgStr = reader.ReadLine();
  169.  
  170. backgroundWorker1.ReportProgress(0, reader.ReadLine());
  171.  
  172. }
  173.  
  174. private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
  175. {
  176. string message = (string)e.UserState;
  177. lstBoxChat.Items.Add("[RECEIVED]: " + message);
  178.  
  179. }
  180.  
  181. private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
  182. {
  183. // MessageBox.Show("finished");
  184. if (receiverPipe.IsConnected)
  185. {
  186. startWorker1();
  187. }
  188. else
  189. {
  190. MessageBox.Show("Connection lost");
  191. }
  192. }
  193.  
  194. private void startWorker1()
  195. {
  196. backgroundWorker1.RunWorkerAsync();
  197. }
  198.  
  199. private void backgroundWorkerSendMessage_DoWork(object sender, DoWorkEventArgs e)
  200. {
  201. Byte[] msgByte = System.Text.Encoding.GetEncoding("windows-1256").GetBytes(msg);
  202. senderPipe.Write(msgByte, 0, msg.Length);
  203. }
  204. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement