Autor Beitrag
phsteckel
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 18.11.02 19:30 
Hallo,

ich entwickle gerade eine TCP/IP-Anwendung unter Delphi 7 pro. Ich bin von Delphi 5 umgestiegen. Leider hat sich das ServerSocket geändert.

Ich bin nach wie vor in der Lage, eine Verbindung aufzubauen. Allerdings ist mir nicht ganz klar, wie ich auf dem Server-Socket auf eintreffende Nachrichten reagieren kann. Bislang funktionierte dies über ein OnReceive-Ereignis (oder so ähnlich). Nun habe ich lediglich das Accept-Ereignis sowie GetThread. Komme ich an der Verwendung von Threads nicht vorbei (ich habe lediglich einen verbundenen Client)?

Gibt es jemanden, der hierbei schon Erfahrungen gesammelt hat oder mir sogar ein kurzes Sample empfehlen kann?

Vielen Dank im Voraus,

phsteckel
DataCool
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 112



BeitragVerfasst: Mo 18.11.02 21:28 
Hi,

Du arbeitest mit Indy-Komponenten TIdTcpServer u. Client richtig ?
Die Server Komponente arbeitet Multi-Threaded und das ist auch gut so :wink:

Auch wenn Du nur einen Client hast.

Die von Dir gewünschte Funktionsweise findest Du bei den bei den Komponenten TServerSocket u. TClientSocket im Register Internet.

Allerdings kann ich bei anspruchsvollen Anwendungen nur zu den Indy-Komponenten raten. :!:

_________________
DataCool
phsteckel Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 19.11.02 09:44 
DataCool hat folgendes geschrieben:
Hi,

Du arbeitest mit Indy-Komponenten TIdTcpServer u. Client richtig ?


Nein. Es handelt sich um TTcpServer sowie TTcpClient (neu seit Delphi 7 - oder 6?). Diese Objekte erstetzen die (mir aus Delphi 5) bekannten TServerSocket und TClientSocket.

DataCool hat folgendes geschrieben:

Die Server Komponente arbeitet Multi-Threaded und das ist auch gut so :wink:

Auch wenn Du nur einen Client hast.


Ja, finde ich auch - leider kann ich damit (noch) nicht umgehen;-) Daher wäre ich für ein Beispiel/Hilfestellung sehr dankbar. Mein Problem ist, dass ich im Server nicht in der Lage bin, eine Verbindung zu erstellen und bei einer etablierten Verbindung auf eingehende Signale zu reagieren geschweige denn sie auszugeben.

DataCool hat folgendes geschrieben:

Die von Dir gewünschte Funktionsweise findest Du bei den bei den Komponenten TServerSocket u. TClientSocket im Register Internet.

Allerdings kann ich bei anspruchsvollen Anwendungen nur zu den Indy-Komponenten raten. :!:


s.o.

phsteckel
DataCool
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 112



BeitragVerfasst: Di 19.11.02 09:47 
Was soll das Beispiel den genau können ?

Wenn's nicht so Umfangreich ist, schreib ich das eben 8)

_________________
DataCool
phsteckel Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 19.11.02 10:34 
DataCool hat folgendes geschrieben:
Was soll das Beispiel den genau können ?

Wenn's nicht so Umfangreich ist, schreib ich das eben 8)


Es würde im Prinzip reichen, ein Server und ein Client (TCP, vorzugsweise Indy). Der Server horcht an einem Port, der Client verbindet und eine Verbindung kommt zustandet (offenbar muss hierfür im Server ein Thread erzeugt werden, der auf eingehende Nachrichten dieser Verbindung reagieren kann).

Wenn Du jetzt noch von Server und Client jeweils einen String schicken lässt und sich der jeweils andere mit einem 'Empfangen: ' + empfangerString (zb per messagebox) meldet bin ich völlig begeistert;-)

Ist wahrscheinlich tatsächlich keine große Sache - leider habe ich keine Ahnung, wie ich die Geschichte im Server handle.

Vielen Dank im Voraus,

phsteckel.
DataCool
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 112



BeitragVerfasst: Di 19.11.02 11:05 
Bekommst Du im Laufe des Tages ok ?!

_________________
DataCool
phsteckel Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 19.11.02 13:38 
DataCool hat folgendes geschrieben:
Bekommst Du im Laufe des Tages ok ?!


Vielen Dank, ist aber offenbar nicht mehr nötig: Ich habe es soeben hinbekommen !!!

Offenbar sind die Indy-Komponenten (für mich) erheblich logischer aufgebaut, als diese TTcpServer bzw. TTcpClient.

Wie auch immer: Es funktioniert mit den Indy-Komponenten.

Vielen Dank an alle Tipp-Geber !!!

Gruß phsteckel