Мои экстрасенсорные способности говорят мне, что ваш серверный код использует асинхронный или перекрывающийся ввод-вывод.
Те вызовы WSARecvFrom
, которые вы наблюдаете при запуске, являются буферами, которые "публикуются".Когда данные действительно поступают, вызывается функция обратного вызова, указанная в качестве последнего параметра для WSARecvFrom
.
То, что вы, вероятно, хотите сделать, это перехватить WSARecvFrom
и заменить параметр lpCompletionRoutine
своей собственной функцией обратного вызова.Он находится в вашей собственной функции обратного вызова, где вы будете регистрировать / выводить данные, которые вы пытаетесь наблюдать (затем вызывать реальную функцию обратного вызова, которую ожидает приложение).И серверный код может использовать разные функции обратного вызова для разных вызовов WSARecvFrom
- поэтому действуйте осторожно.
Также вполне возможно, что серверный код не устанавливает функцию обратного вызова.Может быть, использовать IOCP или просто опрос перекрытой структуры.YMMV.