Advertisement
Guest User

Untitled

a guest
Oct 18th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.88 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Net.Sockets;
  6. using System.Text;
  7. using System.Threading;
  8. using System.Threading.Tasks;
  9.  
  10.  
  11. namespace ConsoleApp3
  12. {
  13. /*
  14. class Program1
  15. {
  16. private static void ThreadProc(Object stateInfo)
  17. {
  18. var time = ((object[])stateInfo)[0];
  19. Thread.Sleep((int)time);
  20. Console.WriteLine("watek poczekal: " + time + " ms");
  21. }
  22.  
  23. static void Main(string[] args)
  24. {
  25. ThreadPool.QueueUserWorkItem(ThreadProc, new object[] { 1000 });
  26. Thread.Sleep(3000);
  27. }
  28. }
  29. */
  30. /*
  31. class Program2
  32. {
  33. static void Main(string[] args)
  34. {
  35. ThreadPool.QueueUserWorkItem(Server);
  36. ThreadPool.QueueUserWorkItem(Client, "Hello from Client 1");
  37. ThreadPool.QueueUserWorkItem(Client, "Hello from Client 2");
  38. Thread.Sleep(5000);
  39.  
  40. }
  41.  
  42. private static void Server(Object stateInfo)
  43. {
  44. TcpListener server = new TcpListener(IPAddress.Any, 2048);
  45. server.Start();
  46. while (true)
  47. {
  48. TcpClient client = server.AcceptTcpClient();
  49. byte[] buffer = new byte[1024];
  50. client.GetStream().Read(buffer, 0, 1024);
  51. Console.WriteLine("Message from client: " + Encoding.UTF8.GetString(buffer));
  52. client.GetStream().Write(buffer, 0, 1024);
  53. client.Close();
  54. }
  55. server.Stop();
  56. }
  57.  
  58. private static void Client(Object stateInfo)
  59. {
  60. TcpClient client = new TcpClient();
  61. client.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2048));
  62. NetworkStream stream = client.GetStream();
  63.  
  64. var byteMessage = new ASCIIEncoding().GetBytes((string)stateInfo);
  65. client.GetStream().Write(byteMessage, 0, byteMessage.Length);
  66.  
  67. while (true)
  68. {
  69. byte[] buffer = new byte[1024];
  70.  
  71. if (client.GetStream().DataAvailable)
  72. {
  73. client.GetStream().Read(buffer, 0, 1024);
  74. Console.WriteLine("Server respond: " + Encoding.UTF8.GetString(buffer));
  75. }
  76.  
  77. }
  78. }
  79. }
  80. */
  81. /*
  82. class Program3
  83. {
  84. static void Main(string[] args)
  85. {
  86. ThreadPool.QueueUserWorkItem(Server);
  87. ThreadPool.QueueUserWorkItem(Client, "Hello from Client 1");
  88. ThreadPool.QueueUserWorkItem(Client, "Hello from Client 2");
  89. Thread.Sleep(5000);
  90. System.Console.Read();
  91. }
  92.  
  93. private static void Server(Object stateInfo)
  94. {
  95. TcpListener server = new TcpListener(IPAddress.Any, 2048);
  96. server.Start();
  97. while (true)
  98. {
  99. TcpClient client = server.AcceptTcpClient();
  100. ThreadPool.QueueUserWorkItem(ConnectionHandler, client);
  101.  
  102. }
  103. server.Stop();
  104. }
  105.  
  106. private static void Client(Object stateInfo)
  107. {
  108. TcpClient client = new TcpClient();
  109. client.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2048));
  110. NetworkStream stream = client.GetStream();
  111.  
  112. var byteMessage = new ASCIIEncoding().GetBytes((string)stateInfo);
  113. client.GetStream().Write(byteMessage, 0, byteMessage.Length);
  114.  
  115. while (true)
  116. {
  117. byte[] buffer = new byte[1024];
  118.  
  119. if (client.GetStream().DataAvailable)
  120. {
  121. client.GetStream().Read(buffer, 0, 1024);
  122. Console.ForegroundColor = ConsoleColor.Green;
  123. Console.WriteLine("Server respond: " + Encoding.UTF8.GetString(buffer));
  124. }
  125.  
  126. }
  127. }
  128.  
  129. private static void ConnectionHandler(Object stateInfo)
  130. {
  131. var client = (TcpClient)stateInfo;
  132. byte[] buffer = new byte[1024];
  133. int a = client.GetStream().Read(buffer, 0, 1024);
  134. Console.ForegroundColor = ConsoleColor.Red;
  135. Console.WriteLine("Message from client: " + Encoding.UTF8.GetString(buffer));
  136. client.GetStream().Write(buffer, 0, a);
  137. client.Close();
  138. }
  139. }
  140. */
  141. class Program4
  142. {
  143. public static Object thislock= new Object();
  144.  
  145. static void Main(string[] args)
  146. {
  147. ThreadPool.QueueUserWorkItem(Server);
  148. ThreadPool.QueueUserWorkItem(Client, "Hello from Client 1");
  149. ThreadPool.QueueUserWorkItem(Client, "Hello from Client 2");
  150. Thread.Sleep(5000);
  151. System.Console.Read();
  152. }
  153.  
  154. private static void Server(Object stateInfo)
  155. {
  156. TcpListener server = new TcpListener(IPAddress.Any, 2048);
  157. server.Start();
  158. while (true)
  159. {
  160. TcpClient client = server.AcceptTcpClient();
  161. ThreadPool.QueueUserWorkItem(ConnectionHandler, client);
  162.  
  163. }
  164. // server.Stop();
  165. }
  166.  
  167. private static void Client(Object stateInfo)
  168. {
  169. TcpClient client = new TcpClient();
  170. client.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2048));
  171. NetworkStream stream = client.GetStream();
  172.  
  173. var byteMessage = new ASCIIEncoding().GetBytes((string)stateInfo);
  174. client.GetStream().Write(byteMessage, 0, byteMessage.Length);
  175.  
  176. while (true)
  177. {
  178. byte[] buffer = new byte[1024];
  179.  
  180. if (client.GetStream().DataAvailable)
  181. {
  182. client.GetStream().Read(buffer, 0, 1024);
  183. lock (thislock)
  184. {
  185. Console.ForegroundColor = ConsoleColor.Green;
  186. Console.WriteLine("Server respond: " + Encoding.UTF8.GetString(buffer));
  187. }
  188. }
  189.  
  190. }
  191. }
  192.  
  193. private static void ConnectionHandler(Object stateInfo)
  194. {
  195. var client = (TcpClient)stateInfo;
  196. byte[] buffer = new byte[1024];
  197. int a = client.GetStream().Read(buffer, 0, 1024);
  198. lock (thislock)
  199. {
  200. Console.ForegroundColor = ConsoleColor.Red;
  201. Console.WriteLine("Message from client: " + Encoding.UTF8.GetString(buffer));
  202. }
  203. client.GetStream().Write(buffer, 0, a);
  204. client.Close();
  205. }
  206. }
  207.  
  208.  
  209.  
  210. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement