AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Frage zu TServersocket/Indy!
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu TServersocket/Indy!

Ein Thema von Goldesel · begonnen am 3. Sep 2006 · letzter Beitrag vom 20. Sep 2006
Antwort Antwort
Benutzerbild von Goldesel
Goldesel

Registriert seit: 22. Nov 2004
Ort: Lübeck
202 Beiträge
 
Delphi 2005 Architect
 
#1

Frage zu TServersocket/Indy!

  Alt 3. Sep 2006, 10:57
Hallo,

ich möchte gern folgendes Umsetzen:

Im Netzwerk sind zwei Computer. Jetzt soll auf einem PC das Hauptprogramm laufen, welche die Daten von dem anderen PC empfängt. Dabei handelt es sich um Computerinformationen, wie CPU-Auslastung etc. Ich habe mit dem TServerSocket und dem TClientSocket bereits ein wenig gearbeitet und bin auch schon soweit, dass die Daten vom einem PC zum anderen übermittelt werden. Jetzt möchte ich allerdings, dass man eine IP eingeben kann und das Hauptprogramm checkt dann, ob auf dem PC der Client installiert ist, wenn ja werden die Daten gesandt, wenn nicht, dann soll eine Fehlermeldung ausgegeben werden. Ich weiß nicht, ob es besser ist, das oben genannte mit den Indy Komponenten umzusetzen, da müsste ich mich dann allerdings noch einarbeiten.

Ich hoffe, dass ihr mir helfen könnt.

Vielen Dank
Jannik
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#2

Re: Frage zu TServersocket/Indy!

  Alt 3. Sep 2006, 11:01
Warum Indys?

Du setzte das Serversocket auf einen beliebigen Port, in dem er lauscht. Dann nimmst du das Prüf-Programm (Clientsocket), gibst die IP an und schickst eine Nachricht auf den selben Port wo das Serversocket lauscht. Wenn das Serversocket auf diesem Port eine Nachricht empfängt sendet es eine Nachtricht zurück das die Software auf diesem Rechner installiert ist, sollte keine Nachricht zurückkommen kannst du davon ausgehen das die Software auf dem Rechner nicht verfügbar ist.
  Mit Zitat antworten Zitat
Tommy

Registriert seit: 14. Jun 2006
Ort: chemnitz
20 Beiträge
 
#3

Re: Frage zu TServersocket/Indy!

  Alt 3. Sep 2006, 14:48
würde auch die normalen Komponenten nehmen - aber so umständlich musst du es ne machen (hin und zurückschicken) - eigtl müsstest du nur beim Event OnError gucken - wenn da nix ist, mit dem der client sich verbinden kann, müsste der von allein rummeckern - musst du halt ma probieren, welcher errorcode da der richtige ist ^^

Tom
C++ != D

  Mit Zitat antworten Zitat
Benutzerbild von Goldesel
Goldesel

Registriert seit: 22. Nov 2004
Ort: Lübeck
202 Beiträge
 
Delphi 2005 Architect
 
#4

Re: Frage zu TServersocket/Indy!

  Alt 11. Sep 2006, 13:09
Hallo,

ich habe noch eine Frage zum selben Thema:
Ich bin jetzt soweit, dass der Client checkt, ob der Server antwortet. Das funktioniert auch. Jetzt möchte ich aber z.B. den Computernamen übertragen. Der Server liest diesen aus und der Client schickt einen Text an den Server mit dem Inhalt "Computername". Auf dem Server wird der Text verarbeitet und jetzt soll der Computername an den Client geschickt werden und dort unter der Variablen "Computername" gespeichert werden. Allerdings wird der Computername immer unter der Variable "Antwort" gespeichert, in welcher steht, ob der Client connecten kann oder nicht.

Ich hoffe Ihr versteht, was ich meine ...

Vielen Dank
Jannik
  Mit Zitat antworten Zitat
TheMighty

Registriert seit: 14. Sep 2006
2 Beiträge
 
#5

Re: Frage zu TServersocket/Indy!

  Alt 14. Sep 2006, 16:05
Ich hatte vor kurzem das gleiche Problem.

Der Client müsste irgendwie wissen was gerade gesendet wird: der Computername oder die bestätigung, dass der Server da ist.

Erste Lösung (nicht sehr schön, aber einfach):
Der Client setzt nach dem Senden von "Computername" eine Variable auf "True" und kann anhand dieser dann beim Lesen der Nachricht des Servers abfragen, ob diese Nachricht nach der Anfrage "Computername" kommt. Das ist dann höchstwarscheinlich der Computername des Servers.

Zweite Lösung (besser, aber komplizierter):
Der Server schickt den Computernamen mit einem Kontrollzeichen davor (etwa so: "*PCArbeitszimmer").
Dann kann der Client mit

if Socket.RecieveText[1] = "*"

abfragen, ob das erste Zeichen ein * ist.
Dann musst du nur noch den Stern aus dem String entfernen um den Computernamen auch verwenden zu können:

// Str ist der empfangene String
var
AktuellesZeichen: Integer;
begin
Computername := '';
AktuellesZeichen := 2;
while AktuellesZeichen <= Length(Str) do
begin
Computername := Computername + Str[AktuellesZeichen];
AktuellesZeichen := AktuellesZeichen + 1;
end;
end;

hoffe das hilft
Mfg The Mighty
  Mit Zitat antworten Zitat
Benutzerbild von Goldesel
Goldesel

Registriert seit: 22. Nov 2004
Ort: Lübeck
202 Beiträge
 
Delphi 2005 Architect
 
#6

Re: Frage zu TServersocket/Indy!

  Alt 14. Sep 2006, 17:32
Hallo TheMighty,

danke für den Tipp. Werd das später mal ausprobieren, weil ich zur zeit nicht die Möglichkeit dazu habe. Ich werde mich dann nochmal melden.

Ach ja:
Ein herzliches Willkommen in der Delphipraxis!!!
  Mit Zitat antworten Zitat
TheMighty

Registriert seit: 14. Sep 2006
2 Beiträge
 
#7

Re: Frage zu TServersocket/Indy!

  Alt 15. Sep 2006, 08:33
Jo alles klar bitte
  Mit Zitat antworten Zitat
Benutzerbild von vlees91
vlees91

Registriert seit: 19. Apr 2004
843 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Frage zu TServersocket/Indy!

  Alt 19. Sep 2006, 20:53
Eine Frage: Gibt's die TServerSocket auch bei Turbo Delphi?, denn da ist nur ein TTcpServer, und da schaue ich garnicht durch...
vlees91
  Mit Zitat antworten Zitat
Benutzerbild von Goldesel
Goldesel

Registriert seit: 22. Nov 2004
Ort: Lübeck
202 Beiträge
 
Delphi 2005 Architect
 
#9

Re: Frage zu TServersocket/Indy!

  Alt 19. Sep 2006, 21:45
Also ich kann jetzt ja nur von Delphi 2005 reden, aber ich denke, dass du das package vielleicht noch manuell installiern musst. Schau mal im . lib verzeichnis nach einem package namens "dclsockets.bpl" (oder so ähnlich) . Dann müsste es eigentlich funktionieren.
  Mit Zitat antworten Zitat
Benutzerbild von vlees91
vlees91

Registriert seit: 19. Apr 2004
843 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Frage zu TServersocket/Indy!

  Alt 20. Sep 2006, 08:52
nein, gibts nicht, aber ScktComp.dcu gibt's
und da ist das drin. also jetzt alles zur laufzeit erstellen...
vlees91
  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 06:25 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