![]() |
Прога My Proxy
Программа запускающая прокси сервер на вашем компе.
Написана на Delphi 7. Прога : http://tortop.msk.ru./MyProxy.exe Исходники : http://tortop.msk.ru./myproxy.zip |
1) НА WinAPI смотрелось бы лучше. Чем на VCL
2) VCL тут реально лишнее. Потому как потоки можно и через CreateThread создавать 3) Если ошибка, то лучше выводи её в лог. (хотябы в мемо) а не сообщением. Потому как при глобальнмо сбое посыпится куча их 4) когда пробуеш получить HTTP заголовок то лучше ставь таймаут на Recv. Чтобы он не висел до посинения. также сразу получай длинну считанных данных чтобы не обрабатывать пустой буфер 5) бывают случае когда HTTP запрос больше килобайта. Или приходит в виде двух и более пакетов. ТАк что считывай в цикле до тех пор пока не будет crlf 2 раза 6) _request:=string(_buff); - ниесть гуд. 7) адрес сервака береш из Host - а он не всегда может быть заполнен. Так что желательно данные брать из первой стоки (то что после GET/POST) 8) Error 400: Invalid header и тому подобные вешь - это не правильно. лучше сразу по протоколу всё делай. типа HTTP/1.0 400 Bad Request HTTP/1.0 502 Bad Gateway итд 9) когда создаеш сокет, то проверяй его на ошибку. бывают случае что сокет не создается 10) Код:
//Соединение с сервером11) Код:
//Если нам подсунули обычный ip, то просто преобразовывемТо проверка обломается. Также обломается и имя типа 2ip.com Так что просто делай inet_addr сразу а потом смотри что она вернула. Если ошибку, то тогда резолвить 12) Код:
procedure TClientThread.SendStr(s: TSocket; str: string);примерно так: типа send(s, _temp[1], length(_temp),0); Более подробно влом смотреть. Но и этого ужа достаточно для проведения больших работ по исправлению итд итп. Ну а так можно поставить +1 за старанее |
Понял.Исправлю.
|
| Время: 06:58 |