Communication.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Net.Sockets;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace ServerV2.Libraries
  9. {
  10. class Communication
  11. {
  12. //simple writeline and readline
  13. public static void WriteTextMessage(TcpClient client, string message)
  14. {
  15. var stream = new StreamWriter(client.GetStream(), Encoding.Unicode);
  16. string joined = string.Join("|", message);
  17. stream.WriteLine(joined);
  18. stream.Flush();
  19. }
  20. public static string ReadTextMessage(TcpClient client)
  21. {
  22. StreamReader stream = new StreamReader(client.GetStream(), Encoding.Unicode);
  23. return stream.ReadLine();
  24. }
  25. //byte streaming
  26. public static void SendMessage(TcpClient client, string message)
  27. {
  28. client.GetStream().Write(Encoding.Unicode.GetBytes(message), 0, Encoding.Unicode.GetBytes(message).Length);
  29. }
  30. //read incoming message
  31. public static string ReadMessage(TcpClient client)
  32. {
  33. byte[] buffer = new byte[256];
  34. int totalRead = 0;
  35. do { totalRead += client.GetStream().Read(buffer, totalRead, buffer.Length - totalRead); }
  36. while (client.GetStream().DataAvailable);
  37. return Encoding.Unicode.GetString(buffer, 0, totalRead);
  38. }
  39. }
  40. }