15.07.2011, 15:45 | #1 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
Сетевая активность ВоВ
Сделал монитор сетевой активности для ВоВ, путем перехвата вызовов функций winsock, заметил пару интересных вещей:
1) вов видимо умеет работать по протоколу ipv6, потому что сперва он пробует создать сокет именно с ipv6, но у меня вызов завершается ошибкой (протокол не установлен) 2) первым делом он зачем-то создает UDP соединение на локальный адрес и постоянно шлет туда 1 байт, ну и принимает его соответственно. Код:
DLL_PROCESS_ATTACH 2948 socket af = 2, type = 2, protocol = 17, result = 000021EC bind 000021EC, result = 0 connect 000021EC, 127.0.0.1:4441, result = 0 socket af = 23, type = 2, protocol = 0, result = FFFFFFFF socket af = 2, type = 1, protocol = 6, result = 000022F0 bind 000022F0, result = 0 connect 000022F0, 213.248.127.133:1119, result = -1 Правда тут я не понимаю момент с коннектом на localhost... А где вызов listen перед этим ? Или при использовании UDP протокола как-то иначе идет работа с сокетом в отличии от TCP ? ну и вопрос впринципе - нафига он это делает ? на кой предмет постоянно слать себе 1 байт? Последний раз редактировалось Йоха; 15.07.2011 в 15:53. |
15.07.2011, 17:39 | #2 |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
Может это они так проверяют доступен ли протокол IPv6?
|
15.07.2011, 18:13 | #3 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Да, чтобы принимать UDP пакеты достаточно recvfrom вызывать. Недавно разбирался с ними для популярной в последнее время белорусской онлайновой игрушки.
Последний раз редактировалось LordJZ; 15.07.2011 в 18:16. |