Как бороться с повышением пинга при подключении к компьютеру с помощью сокета? - C#
Формулировка задачи:
Есть клиент-серверная модель сети написанная для игры. Обработка сокетов осуществляется с помощью асинхронных функций. Соль вся в том, что когда сервер и клиент игры запущенны на локальном компьютере, то пинг небольшой, и все прекрасно работает, но если коннектится на другой комп, то уже при пинге 70-80 доходят не все пакеты, сокета забиваются.
Собственно как с этим бороться? Есть у кого варианты?
З.Ы. Работает это все на TCP протоколе.
Решение задачи: «Как бороться с повышением пинга при подключении к компьютеру с помощью сокета?»
textual
Листинг программы
public static void Send(BinaryWriter stream, bool closeStream) { if (!isConnected) { Console.WriteError("Unable to send packet becouse connection not found."); return; } try { stream.Seek(0, SeekOrigin.Begin); int streamLength = (int)stream.BaseStream.Length; byte[] bytes = new byte[streamLength]; stream.BaseStream.Read(bytes, 0, streamLength); if (closeStream) stream.Close(); socket.BeginSend(bytes, 0, bytes.Length, SocketFlags.None, new System.AsyncCallback(OnSend), socket); } catch(System.Exception e) { Console.WriteError("Send packet exception: " + e); Disconnect(); } } private static void OnSend(System.IAsyncResult ar) { Socket socket = (ar.AsyncState as Socket); try { socket.EndSend(ar); } catch(System.Exception e) { Console.WriteError("On Send packet exception: " + e); Disconnect(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д