Проблема с асинхронным сокетом C#
-
19-09-2019 - |
Вопрос
У меня странная проблема с моим кодом, на данный момент все работает нормально, кроме отправки.Всякий раз, когда я пытаюсь отправить пакет, он на самом деле отправляет много пустых пакетов, и я не могу понять, почему. Я проверил с помощью отладчика, и функция SendPacket вызывается только один раз.Спасибо всем!
Решение
Что я вижу:вы передаете массив (loginOutBuffer
) к Socket.BeginSend()
в SendPacket
с помощью OnPacketRecv
, но вы очищаете его сразу после OnPacketRecv
.
Socket.BeginSend()
не создает копию массива, когда вы его передаете, поэтому он отправляет данные в уже очищенный массив, в результате чего на другом конце выходят нули.
Не связан с StackOverflow