Er staat erg veel over socket communicatie en Delphi in de search maar net niet dat wat ik zoek.
Een Cobol programma maakt gebruik van een C programma die de socket communicatie verzorgd. Het C programmaatje ondersteund Winsock en fungeert als client. Op een andere pc op het netwerk heb ik een test programmaatje in Delphi geschreven die een TServerSocket component gebruikt. Deze is ingesteld als stNonBlocking.
Het maken van een verbinding tussen het Cobol en het C programmaatje op de Linux machine en het Delphi programma op een Windows pc lukt. Ik kan ook een tekstbericht sturen van het Cobol programma, via het C programma, naar het Dephi programma op de windows pc. Echter, als ik dan een string terug wil sturen (gewoon een simpele 'OK') dan krijg ik een "Asynchronous error". De OnClientRead event ziet er als volgt uit:
procedure TForm1.srvscktTestClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
mmTest.Lines.Add(Socket.ReceiveText);
srvscktTest.Socket.Connections[0].SendText('OK');
end;
Ik heb het ook geprobeerd met deze aanroep:
procedure TForm1.srvscktTestClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
mmTest.Lines.Add(Socket.ReceiveText);
Socket.SendText('OK');
end;
Dus Socket.SendText in plaats van srvscktTest.Socket.Connections[0].SendText. Dit geeft echter dezelfde error. Heeft iemand een idee van wat ik fout doe? Als ik twee Delphi programmaatjes schrijf en de één fungeert als client en de ander als server, dan kan ik wel meteen een string terug sturen....
Een Cobol programma maakt gebruik van een C programma die de socket communicatie verzorgd. Het C programmaatje ondersteund Winsock en fungeert als client. Op een andere pc op het netwerk heb ik een test programmaatje in Delphi geschreven die een TServerSocket component gebruikt. Deze is ingesteld als stNonBlocking.
Het maken van een verbinding tussen het Cobol en het C programmaatje op de Linux machine en het Delphi programma op een Windows pc lukt. Ik kan ook een tekstbericht sturen van het Cobol programma, via het C programma, naar het Dephi programma op de windows pc. Echter, als ik dan een string terug wil sturen (gewoon een simpele 'OK') dan krijg ik een "Asynchronous error". De OnClientRead event ziet er als volgt uit:
procedure TForm1.srvscktTestClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
mmTest.Lines.Add(Socket.ReceiveText);
srvscktTest.Socket.Connections[0].SendText('OK');
end;
Ik heb het ook geprobeerd met deze aanroep:
procedure TForm1.srvscktTestClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
mmTest.Lines.Add(Socket.ReceiveText);
Socket.SendText('OK');
end;
Dus Socket.SendText in plaats van srvscktTest.Socket.Connections[0].SendText. Dit geeft echter dezelfde error. Heeft iemand een idee van wat ik fout doe? Als ik twee Delphi programmaatjes schrijf en de één fungeert als client en de ander als server, dan kan ik wel meteen een string terug sturen....
[ Voor 3% gewijzigd door Verwijderd op 20-02-2003 07:30 ]