![]() |
recvfrom ( ) error: 10040
Здравствуйте народ, я решил написать монитор для серверов Conter Strike
сделал небольшую програмку UDP клиент с использованием сокетов программа отсылает пакет, но при приеме ответа сообщает об ошибке recvfrom ( ) error: 10040 вот код PHP код:
|
Цитата:
Вот ссылка на коды ошибок http://foxpopuli.narod.ru/plb/fsox.html |
это баг профиксил, теперь такая проблема, вместо содержимого пакета, прога много раз выдает ip отправителя
|
Цитата:
Ну это тебе наверно нужно смотреть спецификацию протокола контры, если она конечно открыта, в чем я конешн сомневаюсь ( корпоративная разработка всеж). Попробуй записывать вывод пакетов в файл, а потом проанализируй нужную тебе информацию, найди смещение X в buff[X] , после которого и будет нужная тебе информация :) и что это за строчка такая?? PHP код:
PHP код:
|
проблема в том что printf("S=>C: %s", &buff [0]); должна выводить на экран содержимое пакета, а вместо него там ip адрес отправителя
|
Цитата:
PHP код:
|
Цитата:
|
в лабах я давал разборку в шестнадцатиричных кодах блоков приема
|
вот описание протокола CS:S
http://www.int64.org/docs/gamestat-protocols/source.html какой свежести не знаю. Изменения дальше гугли сам. Код ужасен по стилю, некоторые извращения убивают => Бери К&R или Прата и долго медитируй. Во вторых. Насколько я понял по описалову сначало нужно запросить сервер пакетом вида - FF FF FF FF 54 != твоей строке символов тк ты передаёшь массив из 100 символов. И при инициализации строкой не указывай размер массива. в итоге чтото типо этого - char buffer[] = "\xFF\xFF\xFF\xFF\x54"; при передаче передавай на один символ меньше, чтобы исключить \0 - sizeof(buffer) - 1 Пакет первоначального запроса может уже изменился - гугли и спрашивай на тематических форумах. |
| Время: 09:26 |