moin, erstmal der code:
Delphi-Quellcode:
program ProgSock;
{$APPTYPE CONSOLE}
uses
SysUtils, forms, ScktComp;
type
TCustomSrv = Class(TServerSocket)
private
fertig: boolean;
public
procedure OCC(Sender: TObject; Socket: TCustomWinSocket);
procedure OCR(Sender: TObject; Socket: TCustomWinSocket);
end;
var
srv: TCustomSrv;
procedure TCustomsrv.OCC(Sender: TObject; Socket: TCustomWinSocket);
begin
WriteLn('Connected');
//fertig := true;
end;
procedure TCustomsrv.OCR(Sender: TObject; Socket: TCustomWinSocket);
var
MSG: String;
begin
WriteLn('-> '+Srv.Socket.ReceiveText);
end;
begin
try
application.initialize;
application.run;
Srv := TCustomSrv.Create(nil);
Srv.Port := 3724;
Srv.OnClientConnect := srv.OCC;
Srv.OnClientRead := srv.OCR;
Srv.Active := True;
Srv.Open;
except
WriteLn('error');
end;
repeat
//Writeln('WAITING FOR CONNECTION...');
Sleep(1);
application.processmessages;
until srv.fertig;
end.
das OnClientConnect event klappt ohne probleme, allerdings sobald was gesendet wird (von externen programm, kein eigenes) und OnClientRead ausgelöst wird kriege ich folgenden winsock error:
Zitat:
Windows socket error: Eine Anforderung zum Senden oder Empfangen von Daten wurde verhindert, da der Socket nicht verbunden ist und (beim Senden über einen Datagrammsocket mit einem sendto-Aufruf) keine Adresse angegeben wurde (10057), on
API 'recv'
für jegliche hilfe und verbesserungen zum code bin ich sehr dankbar