Показать сообщение отдельно

  #7  
Старый 14.06.2010, 21:43
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме:
1777055

Репутация: 347
По умолчанию

компилить и отлаживать код не пытался, так что просто опишу что я заметил, просматривая это:
- когда принимаешь заголовок socks не проверяешь количество принятых байт
- неправльная работа с select. Проблемы с mail.ru полагаю из-за этого. Ты не проверяешь возможность того что селект возвратил управление по таймауту. Ты не обновляешь набор сокетов перед использованием селекта. Короче, читай маны...
- зачем-то использованы одновременно потоки и select
- VirtualAlloc для выделения буфера памяти каждый раз при приеме данных очень круто и оптимально... вообще выделяемая этой функцией память округляется до страницы(64 кб). Почему бы не использовать буфер в стеке?
- когда таргет закрывает соединение, надо сначала отправить все данные в его буфере клиенту, а потом уже корректно завершить соединение с помощью shutdown а не обрывать его.

стиль:
- зачем goto? тут можно было бы и без него
- нет отступов адекватных


дополнительные советы:
если будут еще проблемы, попробуй использовать сниффер для отладки...

PS за такой код на васме точно побьют
 
Ответить с цитированием