Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Другие игры / Other games (https://forum.zone-game.info/forumdisplay.php?f=24)
-   -   Receive and Send (https://forum.zone-game.info/showthread.php?t=43236)

Boris2105 06.07.2018 18:47

Receive and Send
 
Нужна помощь с исправлением приемом и отправкой пакетов.
Не могу понять в чем проблема , иногда идут левые пакеты.
Пробовал написать так же как и в point blank приемку и отправку пакетов, после 1 пакета ничего в ответ не идет.


Структура пакетов:
Длина = 2 байта
Крипт = 1 байт (0-не закриптован/1-закриптован)
Опкод = 2 байта
Тело = Остальные байты
Для логина и гейм одинаковая структура.

Receive:
Свернуть ↑Развернуть ↓

Send:
Свернуть ↑Развернуть ↓

Boris2105 08.07.2018 17:45

Re: Receive and Send
 
Сможет кто то помочь?

KID 08.07.2018 23:37

Re: Receive and Send
 
для начала вы должны понять:
1. данные от клиента идут постоянным потоком, и для корректного чтения необходимо "выкусывать" пакет по размеру в его заголовке и обрабатывать
2. данные одного пакета могут приходить частями, поэтому все что пришло от сокета вам необходимо положить в условно говоря общий буфер, и "выкусывать" уже с него
3. надо удостоверится, что перед отправкой нового пакета, данные старого полностью были записаны

Boris2105 09.07.2018 00:09

Re: Receive and Send
 
Цитата:

Сообщение от KID (Сообщение 431950)
для начала вы должны понять:
1. данные от клиента идут постоянным потоком, и для корректного чтения необходимо "выкусывать" пакет по размеру в его заголовке и обрабатывать
2. данные одного пакета могут приходить частями, поэтому все что пришло от сокета вам необходимо положить в условно говоря общий буфер, и "выкусывать" уже с него
3. надо удостоверится, что перед отправкой нового пакета, данные старого полностью были записаны

в теории я понимаю, но на практике ничего не выходит


Текущее время: 11:09. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot