Advertisement
Tolyamba

Untitled

Jul 10th, 2017
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.79 KB | None | 0 0
  1. // Клиент
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Net;
  8. using System.Net.Sockets;
  9.  
  10. namespace Client
  11. {
  12.     class Program
  13.     {
  14.         static void Main(string[] args)
  15.         {
  16.             try
  17.             {
  18.                 SendMessageFromSocket(11000);
  19.             }
  20.             catch (Exception ex)
  21.             {
  22.                 Console.WriteLine(ex.ToString());
  23.             }
  24.             finally
  25.             {
  26.                 Console.ReadLine();
  27.             }
  28.         }
  29.  
  30.         static void SendMessageFromSocket(int port)
  31.         {
  32.             // Буфер для входящих данных
  33.             byte[] bytes = new byte[1024];
  34.  
  35.             // Соединяемся с удаленным устройством
  36.  
  37.             // Устанавливаем удаленную точку для сокета
  38.             IPHostEntry ipHost = Dns.GetHostEntry("localhost");
  39.             IPAddress ipAddr = ipHost.AddressList[0];
  40.             IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, port);
  41.  
  42.             Socket sender = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
  43.  
  44.             // Соединяем сокет с удаленной точкой
  45.             sender.Connect(ipEndPoint);
  46.  
  47.             Console.Write("Введите оценку: ");
  48.             string message = Console.ReadLine();
  49.             double mark = Convert.ToDouble(message);
  50.             while (mark >= 10.0 || mark <= 0.0)
  51.             {
  52.                 Console.Write("Повторите ввод оценки: ");
  53.                 message = Console.ReadLine();
  54.                 mark = Convert.ToDouble(message);
  55.             }
  56.  
  57.             //double mark = Convert.ToDouble(message);
  58.             //double mark = Console.Read();
  59.             //string message = Convert.ToString(mark);
  60.  
  61.             Console.WriteLine("Сокет соединяется с {0} ", sender.RemoteEndPoint.ToString());
  62.             byte[] msg = Encoding.UTF8.GetBytes(message);
  63.  
  64.             // Отправляем данные через сокет
  65.             int bytesSent = sender.Send(msg);
  66.  
  67.             // Получаем ответ от сервера
  68.             int bytesRec = sender.Receive(bytes);
  69.  
  70.             Console.WriteLine("\nОтвет от сервера: {0}\n\n", Encoding.UTF8.GetString(bytes, 0, bytesRec));
  71.  
  72.             // Используем рекурсию для неоднократного вызова SendMessageFromSocket()
  73.             if (message.IndexOf("<TheEnd>") == -1)
  74.                 SendMessageFromSocket(port);
  75.  
  76.             // Освобождаем сокет
  77.             sender.Shutdown(SocketShutdown.Both);
  78.             sender.Close();
  79.         }
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement