Как бороться с повышением пинга при подключении к компьютеру с помощью сокета? - C#

Узнай цену своей работы

Формулировка задачи:

Есть клиент-серверная модель сети написанная для игры. Обработка сокетов осуществляется с помощью асинхронных функций. Соль вся в том, что когда сервер и клиент игры запущенны на локальном компьютере, то пинг небольшой, и все прекрасно работает, но если коннектится на другой комп, то уже при пинге 70-80 доходят не все пакеты, сокета забиваются. Собственно как с этим бороться? Есть у кого варианты? З.Ы. Работает это все на TCP протоколе.

Решение задачи: «Как бороться с повышением пинга при подключении к компьютеру с помощью сокета?»

textual
Листинг программы
  1. public static void Send(BinaryWriter stream, bool closeStream)
  2. {
  3.     if (!isConnected)
  4.     {
  5.         Console.WriteError("Unable to send packet becouse connection not found.");
  6.         return;
  7.     }
  8.  
  9.     try
  10.     {
  11.         stream.Seek(0, SeekOrigin.Begin);
  12.         int streamLength = (int)stream.BaseStream.Length;
  13.         byte[] bytes = new byte[streamLength];
  14.         stream.BaseStream.Read(bytes, 0, streamLength);
  15.         if (closeStream) stream.Close();
  16.  
  17.         socket.BeginSend(bytes, 0, bytes.Length, SocketFlags.None, new System.AsyncCallback(OnSend), socket);
  18.     }
  19.     catch(System.Exception e)
  20.     {
  21.         Console.WriteError("Send packet exception: " + e);
  22.         Disconnect();
  23.     }
  24. }
  25.  
  26. private static void OnSend(System.IAsyncResult ar)
  27. {
  28.     Socket socket = (ar.AsyncState as Socket);
  29.     try
  30.     {
  31.         socket.EndSend(ar);
  32.     }
  33.     catch(System.Exception e)
  34.     {
  35.         Console.WriteError("On Send packet exception: " + e);
  36.         Disconnect();
  37.     }
  38. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы