Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Daten über eigenen Port / reservierten Port schicken (https://www.delphipraxis.net/116325-daten-ueber-eigenen-port-reservierten-port-schicken.html)

Manado 26. Jun 2008 19:53


Daten über eigenen Port / reservierten Port schicken
 
Hallo!
Ich möchte zwischen zwei an ein lokales Netzwerk angebundenen Rechnern Daten hin und her schicken- Der verwendete Port ist dabei eigentlich egal, solange es nicht Port 80 ist :-). Aber ich weis nicht, wie und ob das so geht. :shock:

Ich stelle mir vor, dass in Delphi-Programm 1 an Rechner 1 irgendeine Prozedur existiert, die dann ausgeführt wird, wenn über das Netzwerk von Rechner 2 mit Delphi-Programm 2 z.B. ein Zeichen (z.B. 'x') oder auch eine ganze Datei ('machwas.txt') gesendet wird.
(Im Hinterkopf hab ich die Funktionsweise einer direkten seriellen Verbindung, die sich Chars Hin- und Her schickt...So mit EventChar & Co...;-) )

Kennt jemand also ein Modul oder eine Methode, um Daten von Delphi-Programm zu :arrow: Delphi-Programm übers Netzwerk zu schicken?

Danke schonmal :-D

oki 26. Jun 2008 20:12

Re: Daten über eigenen Port / reservierten Port schicken
 
FTP oder Sockets

Gruß

Manado 26. Jun 2008 20:23

Re: Daten über eigenen Port / reservierten Port schicken
 
Jaahh. Hmm. Geht das über die Indy-Komponente? :bouncing4:

oki 26. Jun 2008 20:24

Re: Daten über eigenen Port / reservierten Port schicken
 
Jooop, einer Client, einer Server.

Manado 26. Jun 2008 20:50

Re: Daten über eigenen Port / reservierten Port schicken
 
ah,ok, check ich mal aus. :)

Cyf 26. Jun 2008 22:40

Re: Daten über eigenen Port / reservierten Port schicken
 
ALternativ kannst du auch TClientSocket und TServerSocket oder TTcpClient und TTcpServer nehmen, die alle Teil der VCL sind (von letzteren würd ich für den Einstieg aber abraten, weil sie Borlands Cross-Plattform Versuchsobjekte sind und um einiges schwerer zu handhaben). Die Socket Komponenten werden eventuell je nach Delphi-Version nicht automatisch angezeigt sind aber immer vorhanden, im Zweifelsfall unter Kombonenten -> Packages installieren die dclsocketsXXX.bpl im bin-Ordner auswählen. (XXX hängt denke ich von der Delphiversion ab.)

Manado 27. Jun 2008 10:33

Re: Daten über eigenen Port / reservierten Port schicken
 
Ah, das mit den Sockets ist interessant.
Ist das Ereignis, das beim Server dann etwas auslöst, wenn der Client etwas schickt, "OnClientWrite" ?
Und, was muss ich beim Client für HOST und ADRESS angeben? ..oder gibt es irgendwo dazu ein Beispielprogramm, bei dem eine enfachste kommunikation aufgezeigt ist? Ich glaube, das ist genau das, was ich brauchen, mit den Sockets !!! :-D

Cyf 27. Jun 2008 10:41

Re: Daten über eigenen Port / reservierten Port schicken
 
Delphi-Quellcode:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
Tritt ein wenn du Daten von einem Client empfangen kannst, Socket ist der Socket auf dem Daten reinkommen.

Delphi-Quellcode:
procedure TForm1.ServerSocket1ClientWrite(Sender: TObject;
  Socket: TCustomWinSocket);
Tritt ein wenn der Serversocket(!) Daten senden muss. Das ist imho nur der Fall direkt nach dem Connect, wenn der neue Port dem Client bekannt gemacht wird.

[Edit]Beim Client wird in Adress die IP des Servers eingetragen und in Host die DNS, falls du beides einträgst hat die DNS Vorang.

Manado 27. Jun 2008 18:22

Re: Daten über eigenen Port / reservierten Port schicken
 
Ah, Ok.
Also die Kommuniaktion funktioniert bei mir sehr gut in Richtung Client --> Server, aber nicht andersrum.

Wenn ich vom Server an den Client was schicke, gibts nen Fehler. Ich hab einfach folgenden Code benutzt:

Delphi-Quellcode:
ServerSocket.Socket.SendText('test');
auf dem Client will ich damit empfangen :gruebel: :

Delphi-Quellcode:
procedure TFrmClient.ClientSocketRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add (Socket.ReceiveText)
end;
Irgendwie muss man ja wo angeben können, an WELCHEN CLIENT der Server was schicken soll. In der Fehlermeldung steht was ähnliches...(datagrammsocket ohne adresse...)


Danke!

Manado 27. Jun 2008 18:28

Re: Daten über eigenen Port / reservierten Port schicken
 
Ah, ok habs. Wie blöd:

Delphi-Quellcode:
serversocket1.socket.connections[0].sendtext('na sie!');

Der trick ist dieses Connections[0].
:dancer:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz