Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

31.03.2010, 06:49
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме: 4761503
Репутация:
229
|
|
Сообщение от SkyLine32
Очень прошу привести пример простого парсера html. К примеру выдернуть из <title></title> заголовок.
forum.antichat.ru/threadnav119447-1-10.html
пост #11
|
|
|

31.03.2010, 07:41
|
|
Участник форума
Регистрация: 01.03.2009
Сообщений: 121
Провел на форуме: 4022236
Репутация:
38
|
|
Сообщение от wolmer
forum.antichat.ru/threadnav119447-1-10.html
пост #11
А нет что нибуть попроще? Чтобы не подключать RegExpr.pas а то у меня ошибку Error (reeNoInpitStringSpecified); выдаёт
З,Ы... Не, всё норм, разобрался.
Последний раз редактировалось SkyLine32; 31.03.2010 в 07:55..
|
|
|

31.03.2010, 13:42
|
|
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме: 5209663
Репутация:
357
|
|
Сделал отправку прием UDP но что не работает:
Код:
procedure TForm1.Button1Click(Sender: TObject); //Отправляем текст (здесь все работает все отправляется)
var
ws:TWSAData;
UDP_sock:TSocket;
sockaddr_in:TSockAddrIn;
s:string;
begin
WsaStartup($202,ws);
s:=form1.Edit1.Text;
UDP_sock:=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
sockaddr_in.sin_family:=AF_INET;
sockaddr_in.sin_port:=htons(8765);
sockaddr_in.sin_addr.s_addr:=inet_addr('127.0.0.1');
if Connect(UDP_sock, sockaddr_in, SizeOf(sockaddr_in))<>0 then
begin
closesocket(UDP_sock);
exit;
end;
send(UDP_sock,s[1],length(Form1.Edit1.text),0);
closesocket(UDP_sock);
end;
procedure TForm1.Button2Click(Sender: TObject); //Открытие сокета на прием
var
ws:TWSAData;
sockaddr_in:TSockAddrIn;
s:string;
begin
WsaStartup($202,ws);
s:=form1.Edit1.Text;
UDP_sock2:=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
sockaddr_in.sin_family:=AF_INET;
sockaddr_in.sin_port:=htons(8765);
sockaddr_in.sin_addr.s_addr:=INADDR_ANY;
//Сюда надо что то поставить чтобы сокет принимал данные, но что???
form1.Timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject); //Прием в memo1
var
tmp_buf:array[0..1024] of char;
begin
form1.Timer1.Enabled:=true;
recv(UDP_sock2,tmp_buf,1024,0);
form1.Memo1.Lines.Add(tmp_buf);
end;
end.
В чем проблема?
|
|
|

31.03.2010, 13:48
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме: 4761503
Репутация:
229
|
|
Сообщение от НTL
Сделал отправку прием UDP но что не работает:
Код:
procedure TForm1.Button1Click(Sender: TObject); //Отправляем текст (здесь все работает все отправляется)
var
ws:TWSAData;
UDP_sock:TSocket;
sockaddr_in:TSockAddrIn;
s:string;
begin
WsaStartup($202,ws);
s:=form1.Edit1.Text;
UDP_sock:=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
sockaddr_in.sin_family:=AF_INET;
sockaddr_in.sin_port:=htons(8765);
sockaddr_in.sin_addr.s_addr:=inet_addr('127.0.0.1');
if Connect(UDP_sock, sockaddr_in, SizeOf(sockaddr_in))<>0 then
begin
closesocket(UDP_sock);
exit;
end;
send(UDP_sock,s[1],length(Form1.Edit1.text),0);
closesocket(UDP_sock);
end;
procedure TForm1.Button2Click(Sender: TObject); //Открытие сокета на прием
var
ws:TWSAData;
sockaddr_in:TSockAddrIn;
s:string;
begin
WsaStartup($202,ws);
s:=form1.Edit1.Text;
UDP_sock2:=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
sockaddr_in.sin_family:=AF_INET;
sockaddr_in.sin_port:=htons(8765);
sockaddr_in.sin_addr.s_addr:=INADDR_ANY;
//Сюда надо что то поставить чтобы сокет принимал данные, но что???
form1.Timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject); //Прием в memo1
var
tmp_buf:array[0..1024] of char;
begin
form1.Timer1.Enabled:=true;
recv(UDP_sock2,tmp_buf,1024,0);
form1.Memo1.Lines.Add(tmp_buf);
end;
end.
В чем проблема?
за отправку по udp отвечает функция sendto (прием - recvfrom)
|
|
|

31.03.2010, 14:07
|
|
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме: 5209663
Репутация:
357
|
|
А можно описание всех 6 параметров?
|
|
|

31.03.2010, 14:11
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме: 4761503
Репутация:
229
|
|
Сообщение от НTL
А можно описание всех 6 параметров?
каких еще параметров? (конкретнее)
вообщем вбивай в гугл "udp winsock" и будет тебе счастье  (да и кстати, connect тоже вроде не надо делать при udp)
|
|
|

31.03.2010, 16:53
|
|
Познающий
Регистрация: 21.11.2009
Сообщений: 77
Провел на форуме: 2482290
Репутация:
29
|
|
Продолжаются вопросы про winapi...
Как выполнить функцию при открытии формы? то есть как в vcl formcreate
|
|
|

31.03.2010, 16:59
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме: 1035284
Репутация:
52
|
|
TrueBit если ты в качестве формы используешь диалог из ресурсов то в функции обработки сообщения надо обработать сообщение WM_INITDIALOG
если окно создаешь сам то сообщение WM_CREATE
http://msdn.microsoft.com/en-us/library/ms632619(VS.85).aspx
Последний раз редактировалось transserg; 31.03.2010 в 17:06..
|
|
|

31.03.2010, 20:43
|
|
Познающий
Регистрация: 26.12.2007
Сообщений: 34
Провел на форуме: 150392
Репутация:
8
|
|
Код HTML:
procedure TForm1.Button1Click(Sender: TObject);
var page:string;
param:tidmultipartformdatastream;
begin
if (Length(Edit1.Text) > 0) and (Length(Edit2.Text) > 0) then
begin
param:=tidmultipartformdatastream.Create;
param.AddFormField('Login',Edit1.Text);
param.AddFormField('Domain','mail.ru');
param.AddFormField('Password',Edit2.Text);
param.AddFormField('page','http://wap.my.mail.ru');
page:=W.Post('http://my.mail.ru/cgi-bin/auth?noclear=1',param)
if pos('Неверное имя пользователя или пароль',page) > 0 then
Statusbar1.Panels[0].Text:='Wrong password!'
else
Statusbar1.Panels[0].Text:='Logged!'
end;
end;
При вводе фейк данных все нормально, в строке состояние пишет "неверное имя...", если же пишу настоящие данные, то тогда выскакует ошибка "Socket error # 11004" :3
|
|
|

31.03.2010, 23:45
|
|
Участник форума
Регистрация: 15.07.2009
Сообщений: 200
Провел на форуме: 147171
Репутация:
2
|
|
По 5956 посту подскажите плиз!
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|