AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Daten über eigenen Port / reservierten Port schicken
Thema durchsuchen
Ansicht
Themen-Optionen

Daten über eigenen Port / reservierten Port schicken

Offene Frage von "Manado"
Ein Thema von Manado · begonnen am 26. Jun 2008 · letzter Beitrag vom 27. Jun 2008
Antwort Antwort
Manado

Registriert seit: 30. Jan 2007
Ort: Frankfurt/M.
34 Beiträge
 
#1

Daten über eigenen Port / reservierten Port schicken

  Alt 26. Jun 2008, 19:53
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.

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 Delphi-Programm übers Netzwerk zu schicken?

Danke schonmal
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Daten über eigenen Port / reservierten Port schicken

  Alt 26. Jun 2008, 20:12
FTP oder Sockets

Gruß
42
  Mit Zitat antworten Zitat
Manado

Registriert seit: 30. Jan 2007
Ort: Frankfurt/M.
34 Beiträge
 
#3

Re: Daten über eigenen Port / reservierten Port schicken

  Alt 26. Jun 2008, 20:23
Jaahh. Hmm. Geht das über die Indy-Komponente?
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Daten über eigenen Port / reservierten Port schicken

  Alt 26. Jun 2008, 20:24
Jooop, einer Client, einer Server.
42
  Mit Zitat antworten Zitat
Manado

Registriert seit: 30. Jan 2007
Ort: Frankfurt/M.
34 Beiträge
 
#5

Re: Daten über eigenen Port / reservierten Port schicken

  Alt 26. Jun 2008, 20:50
ah,ok, check ich mal aus.
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#6

Re: Daten über eigenen Port / reservierten Port schicken

  Alt 26. Jun 2008, 22:40
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.)
  Mit Zitat antworten Zitat
Manado

Registriert seit: 30. Jan 2007
Ort: Frankfurt/M.
34 Beiträge
 
#7

Re: Daten über eigenen Port / reservierten Port schicken

  Alt 27. Jun 2008, 10:33
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 !!!
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#8

Re: Daten über eigenen Port / reservierten Port schicken

  Alt 27. Jun 2008, 10:41
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.
  Mit Zitat antworten Zitat
Manado

Registriert seit: 30. Jan 2007
Ort: Frankfurt/M.
34 Beiträge
 
#9

Re: Daten über eigenen Port / reservierten Port schicken

  Alt 27. Jun 2008, 18:22
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:

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

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!
  Mit Zitat antworten Zitat
Manado

Registriert seit: 30. Jan 2007
Ort: Frankfurt/M.
34 Beiträge
 
#10

Re: Daten über eigenen Port / reservierten Port schicken

  Alt 27. Jun 2008, 18:28
Ah, ok habs. Wie blöd:

serversocket1.socket.connections[0].sendtext('na sie!');
Der trick ist dieses Connections[0].
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 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