![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сети [D6, WinXP]
PaNDa000 © (2005-12-31 16:09:00)С наступающим!
Как использовать сокеты в консольном приложении? В простом аппликэйшн легко, а вот в консольном как подключить? Заранее
спасибо за ответы.
XProger (2005-12-31 22:03:00) [1]http://xproger.mirgames.ru/?id=2&page=1#XiRC
</code> (2005-12-31 20:19:00) [2]
{ Output:
Sock created!
Socket Info: Port: 80 Host: gonewacko.com IP: 66.111.37.200
Socket Active: 0
Activated Socket!
}
program songtracker;
{$APPTYPE CONSOLE}
uses
ScktComp, SysUtils;
type
TSock = class
public
Port: Integer;
Url: String;
ClientSocket: TClientSocket;
constructor Create;
procedure SocketRead(Sender: TObject; Socket: TCustomWinSocket);
procedure SocketConnect(Sender: TObject; Socket: TCustomWinSocket);
end;
var
Sock: TSock;
Done: Boolean;
{ TSock }
constructor TSock.Create;
begin
Port := 80;
Url := 'junk/.songtracker/update.php?';
ClientSocket := TClientSocket.Create(nil);
with ClientSocket do
begin
Port := 80;
Host := 'gonewacko.com';
Address := '66.111.37.200';
ClientType := ctNonBlocking;
OnRead := SocketRead;
onConnect := SocketConnect;
end;
end;
procedure TSock.SocketConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
WriteLn('Socket connected! Sending GET');
Socket.SendText('GET /index.html HTTP/1.0' + #10#13#0);
Socket.SendText('Host: gonewacko.com' + #10#13#0);
Socket.SendText('User-Agent: Songtracker' + #10#13#10#13);
end;
procedure TSock.SocketRead(Sender: TObject; Socket: TCustomWinSocket);
begin
WriteLn('Socket Reading something: ' + Socket.ReceiveText);
Done := True;
end;
begin
Sock := TSock.Create;
writeln('Sock created!');
writeln(Format('Socket Info: Port: %d Host: %s IP: %s',[Sock.ClientSocket.Port,Sock.ClientSocket.Host,Sock.ClientSocket.Address]));
Sock.ClientSocket.Open;
writeln('Socket Active: ' +BoolToStr(Sock.ClientSocket.Active));
writeln('Activated Socket!');
while not Done do
Sleep(100);
end.
Apptype (2005-12-31 18:46:00) [3]Вот пример:
{$Apptype console}
program Project1;
uses windows,Classes,Sysutils,scktcomp,dialogs;
type
Tsk1 = class(TClientsocket)
procedure Connect(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var sk1:TClientsocket; Connect: TSocketNotifyEvent;
s:string;
procedure Tsk1.Connect(sender:TObject);
begin
showmessage('test');
end;
begin
s:='127.0.0.1';
sk1:=TClientsocket.Create(nil);
sk1.OnConnect:=Connect;
sk1.ClientType:=ctNonBlocking;
sk1.Address:=Pchar('127.0.0.1');
sk1.Port:=80;
sk1.Active:=true;
sk1.Host:=Pchar('127.0.0.1');
writeln(s); readln;
end.