Advertisement
Pearlfromsu

sockets c#

Apr 8th, 2023
648
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.24 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Net;
  7. using System.Net.Sockets;
  8.  
  9. namespace ClientServer_080423 {
  10.     class Program {
  11.         static void Main(string[] args) {
  12.  
  13.             try {
  14.                 Console.WriteLine("Enter 1 to launch the client, else server");
  15.                 if (Console.ReadLine() == "1") {
  16.                     IPEndPoint ipe = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5834);
  17.                     Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  18.                     socket.Connect(ipe);
  19.                     string message = "";
  20.                     do {
  21.                         Console.WriteLine("Enter your message(0 to exit):");
  22.                         message = Console.ReadLine();
  23.                         byte[] data = Encoding.Unicode.GetBytes(message);
  24.                         socket.Send(data);
  25.  
  26.                         StringBuilder builder = new StringBuilder();
  27.                         int bytes = 0; // количество полученных байт
  28.                         do {
  29.                             bytes = socket.Receive(data, data.Length, 0);
  30.                             builder.Append(Encoding.Unicode.GetString(data, 0, bytes));
  31.                         }
  32.                         while (socket.Available > 0);
  33.                         Console.WriteLine("Ответ сервера: " + builder.ToString());
  34.  
  35.                     } while (message != "0");
  36.  
  37.                     socket.Shutdown(SocketShutdown.Both);
  38.                     socket.Close();
  39.                 } else {
  40.  
  41.                     IPEndPoint ipe = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5834);
  42.                     Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  43.                     socket.Bind(ipe);
  44.                     socket.Listen(5834);
  45.  
  46.                     Socket handler = socket.Accept();
  47.  
  48.                     while (true) {
  49.                         // получаем ответ
  50.                         byte[] data = new byte[256]; // буфер для ответа
  51.                         int recieved = handler.Receive(data, SocketFlags.None);
  52.                         string response = Encoding.Unicode.GetString(data, 0, recieved);
  53.                         Console.WriteLine("{0}: {1}", ((IPEndPoint)(handler.RemoteEndPoint)).Port.ToString(), response);
  54.                         handler.Send(Encoding.Unicode.GetBytes("Answer recieved: " +Encoding.Unicode.GetString(data, 0, recieved)));
  55.                     }
  56.  
  57.                     socket.Shutdown(SocketShutdown.Both);
  58.                     socket.Close();
  59.                 }
  60.  
  61.             }
  62.             catch (Exception ex)
  63.             {
  64.                 Console.WriteLine(ex.Message);
  65.             }
  66.             Console.ReadKey();
  67. }
  68.     }
  69. }
  70.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement