ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Прога My Proxy
  #1  
Старый 13.11.2009, 15:56
<Cyber-punk>
Участник форума
Регистрация: 01.10.2009
Сообщений: 105
Провел на форуме:
559542

Репутация: 94
Отправить сообщение для <Cyber-punk> с помощью ICQ
По умолчанию Прога My Proxy

Программа запускающая прокси сервер на вашем компе.
Написана на Delphi 7.

Прога :
http://tortop.msk.ru./MyProxy.exe

Исходники :
http://tortop.msk.ru./myproxy.zip
 
Ответить с цитированием

  #2  
Старый 13.11.2009, 19:22
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

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)
Код:
 //Соединение с сервером
 if connect(_srvSocket, _srvAddr, sizeof(_srvAddr))=SOCKET_ERROR then
  begin
   SendStr(_Client, '<h1>Error 404: NOT FOUND</h1>');
   exit;
  end;
А кто будет сокет закрывать клиента? и сокет для коннекта к серваку.
11)
Код:
//Если нам подсунули обычный ip, то просто преобразовывем
//его к нужному виду
 if name[4]='.' then
  _inAddr.s_addr := inet_addr(PChar(name))
 else
А если у меня адрес будет типа xx.xxx.xxx.xxx
То проверка обломается. Также обломается и имя типа
2ip.com

Так что просто делай inet_addr сразу
а потом смотри что она вернула. Если ошибку, то тогда резолвить
12)
Код:
procedure TClientThread.SendStr(s: TSocket; str: string);
var
 _buff: array [0..255] of char;
 _temp: AnsiString;
begin
//Добавляем символы конца строка
 _temp :=str+#13+#10;
//Заполняем _buff
 CopyMemory(@_buff, PChar(_temp), Length(_temp));
//отправляем серверу
 send(s, _buff, Length(_temp), 0);
end;
Это вообще ниесть гуд. Зачем ты копируеш? Лучше бы сразу слал строку.
примерно так: типа
send(s, _temp[1], length(_temp),0);

Более подробно влом смотреть. Но и этого ужа достаточно для проведения больших работ по исправлению итд итп. Ну а так можно поставить +1 за старанее

Последний раз редактировалось slesh; 13.11.2009 в 19:28..
 
Ответить с цитированием

  #3  
Старый 13.11.2009, 19:58
<Cyber-punk>
Участник форума
Регистрация: 01.10.2009
Сообщений: 105
Провел на форуме:
559542

Репутация: 94
Отправить сообщение для <Cyber-punk> с помощью ICQ
По умолчанию

Понял.Исправлю.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Proxy FAQ iv. Анонимность 75 01.05.2010 13:24
Живые прокси xdx ICQ 111 15.04.2007 13:10
Proxy Kozak-Scv Анонимность 2 11.02.2007 17:28



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ