Comments 11
думаю, кат не помешает)
+2
Естественным вариантом для меня стала реализация с использованием ассемблера.
Вы — представитель вымирающего вида?! :)
+3
соответственно для windows forms и console приложения
Только не windows forms :)
0
Есть пара мест, где можно еще улучшить программу)
Там, где читаем структуру CONNECT_SOCK4, recv может вернуться, прочитав меньше 9 байт.
Там, где передаём полезные данные, send может вернуться, отослав меньше данных, чем было в буфере.
Оно конечно маловероятно при маленьких размерах буферов, да и алгоритм Нагла никто не отменял. Но с первой проблемой я встретился, когда пытался отправить структуру CONNECT_SOCK4 сокс-серверу несколькими вызовами send, т.к. не охота было выделять память и копировать туда параметры.
Там, где читаем структуру CONNECT_SOCK4, recv может вернуться, прочитав меньше 9 байт.
Там, где передаём полезные данные, send может вернуться, отослав меньше данных, чем было в буфере.
Оно конечно маловероятно при маленьких размерах буферов, да и алгоритм Нагла никто не отменял. Но с первой проблемой я встретился, когда пытался отправить структуру CONNECT_SOCK4 сокс-серверу несколькими вызовами send, т.к. не охота было выделять память и копировать туда параметры.
0
Вполне возможно, я указывал, что программа не оптимизирована. По факту на текущий вариант находящийся в архиве + статью я потратил часа два-три… Об оптимизации даже не задумывался. Те же варианты, которые у меня сделаны в виде библиотеки под линковку в C — там я оптимизировал уже более конкретно, но соответственно и времени на это было потрачено конечно больше.
0
UFO just landed and posted this here
Просьба не в тему: посоветуйте литературу по сокетам.
0
Sign up to leave a comment.
Написание простейшего SOCKS4 сервера на языке Assembler