Thema: Delphi Socket.ReceiveText

Einzelnen Beitrag anzeigen

Snoke

Registriert seit: 10. Aug 2006
16 Beiträge
 
Delphi 2006 Professional
 
#1

Socket.ReceiveText

  Alt 20. Sep 2006, 07:07
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
  Mit Zitat antworten Zitat