Mam pewien problem. Pisze program w okienkach, i działa cacy. Potem próbuję wrzucić go jako konsolowy, i nie działa.
Program powinien być prostym serwerem HTTP. Od przegladarki info dostaje cacy, tymczasem do przegladarki juz dane nie leca, i nie bardzo wiem, co jest tego powodem.
Oczywiscie wiem, ze program na kazde zadanie na razie odpowie tak samo nie zaleznie od tego, czy to przegladarka wysle czy cokolwiek, ale tym sie pozniej zajme, najpierw chce, zeby cokolwiek dzialalo.
Oto pełny kod programu w konsoli:
program http_serw;
{$R *.res}
{$APPTYPE CONSOLE}
uses
sockets, classes, SysUtils; //, txtprocs in 'txtprocs.pas';
var TcpServer1: TTcpServer;
procedure TcpServerAccept(Sender: TObject;
ClientSocket: TCustomIpClient);
var s:string;
p:integer;
begin
s := ClientSocket.Receiveln;
while (s <> '') do
begin
s := ClientSocket.Receiveln;
end;
writeln('GET');
s:='';
s:=s+'HTTP/1.0 200 OK' + #13#10;
s:=s+'Content-Type: text/html' + #13#10;
s:=s+#10#13;
s:=s+'DZIALA';
ClientSocket.Sendln(s);
end;
begin
TcpServer1:=TTcpServer.Create(nil);
TcpServer1.LocalHost:='localhost';
TcpServer1.LocalPort:='82';
TcpServer1.BlockMode:=bmThreadBlocking;
TcpServer1.Name:='TcpServer1';
@TcpServer1.OnAccept:=@TcpServerAccept;
TcpServer1.Active:=true;
if not TcpServer1.Listening then
begin
writeln('Nie słuchan!!!???');
end else writeln('Slucham');
readln;
TcpServer1.Active:=false;
TcpServer1.Free;
end.