AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Socket-Text an mehrere Rechner nacheinander im Netzwerk send
Thema durchsuchen
Ansicht
Themen-Optionen

Socket-Text an mehrere Rechner nacheinander im Netzwerk send

Offene Frage von "Maikiboy"
Ein Thema von Maikiboy · begonnen am 25. Apr 2007 · letzter Beitrag vom 9. Mai 2007
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#11

Re: Socket-Text an mehrere Rechner nacheinander im Netzwerk

  Alt 25. Apr 2007, 13:55
warum trennst du die verbindungen wenn du sie danach wieder aufbaust? Dein Fehler könnte darin liegen das der Server nicht erreichbar ist oder darin das du open aufrufst und danach gleich den Text sendest ohne zu warten das die Verbindung hergestellt wurde. Open ist so weit ich mich erinnere nicht blockierend!
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Socket-Text an mehrere Rechner nacheinander im Netzwerk

  Alt 25. Apr 2007, 14:01
@Sir Thornberry:Ach, da war doch was...
Ich hab das immer so gelöst:
Delphi-Quellcode:
client.open;
repeat
 application.processmessages;
until client.active;
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#13

Re: Socket-Text an mehrere Rechner nacheinander im Netzwerk

  Alt 25. Apr 2007, 14:09
wäre eine Möglichkeit welche die CPU aber reichlich auslastet. Dann doch lieber die Events der Klasse nutzen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Maikiboy

Registriert seit: 25. Apr 2007
14 Beiträge
 
#14

Re: Socket-Text an mehrere Rechner nacheinander im Netzwerk

  Alt 26. Apr 2007, 15:59
Zitat:
Und auf der anderen Seite gibt es wirklich einen TServersocket, der auf dem selben Port lauscht?
Jap, das funktioniert.

Zitat:
warum trennst du die verbindungen wenn du sie danach wieder aufbaust?
Es wird aber zu einer anderen IP aufgebaut!

Zitat:
Dein Fehler könnte darin liegen das der Server nicht erreichbar ist
Doch, die Rechner sind alle an und erreichbar.

Zitat:
oder darin das du open aufrufst und danach gleich den Text sendest ohne zu warten das die Verbindung hergestellt wurde. Open ist so weit ich mich erinnere nicht blockierend!
Wie lange soll ich da warten? Bzw. wie würde ich das am besten machen?
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Socket-Text an mehrere Rechner nacheinander im Netzwerk

  Alt 26. Apr 2007, 17:45
Habe ich schon geschrieben...
Delphi-Quellcode:
repeat
application.processmessages
until clientsocket1.active;
Ist vielleicht nicht elegant, aber es funktioniert. Wenn es dir die CPU zu sehr auslastet, bau halt ein sleep rein.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Maikiboy

Registriert seit: 25. Apr 2007
14 Beiträge
 
#16

Re: Socket-Text an mehrere Rechner nacheinander im Netzwerk

  Alt 26. Apr 2007, 17:57
Delphi-Quellcode:
procedure TForm1.AllCommandTimerTimer(Sender: TObject);
var tempip:String;
begin
  tempip := ListIp.Items[ListIp.Itemindex];
  try
    Client.Close;
    Memo1.Lines.Add('Socket zu ' + tempip + ' erfolgreich geschlossen');
  except
    Memo1.Lines.Add('Socket zu ' + tempip + ' konnte nicht geschlossen werden');
  end;
  Client.Host := tempip;
  try
    Client.Open;
    Memo1.Lines.Add('Socket zu ' + tempip + ' erfolgreich geöffnet');
  except
    Memo1.Lines.Add('Socket zu ' + tempip + ' nicht geöffnet');
  end;
     repeat
        application.processmessages
     until Client.active;
  try
    Client.Socket.SendText(AllCommand);
    Memo1.Lines.Add('IP ' + tempip + ' erfolgreich');
  except
    Memo1.Lines.Add('IP ' + tempip + ' nichterfolgreich');
  end;
  ListIp.ItemIndex := ListIp.Itemindex + 1;
  if (ListIp.ItemIndex >= ListIp.Count) then
    AllCommandTimer.Enabled := False;
end;

Ist doch richtig oder?
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Socket-Text an mehrere Rechner nacheinander im Netzwerk

  Alt 26. Apr 2007, 18:01
Sollte so eigentlich funktionieren.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Maikiboy

Registriert seit: 25. Apr 2007
14 Beiträge
 
#18

Re: Socket-Text an mehrere Rechner nacheinander im Netzwerk

  Alt 26. Apr 2007, 18:07
Nein, tut es nicht. Er macht nach
Delphi-Quellcode:
procedure TForm1.AllCommandTimerTimer(Sender: TObject);
var tempip:String;
begin
  tempip := ListIp.Items[ListIp.Itemindex];
  try
    Client.Close;
    Memo1.Lines.Add('Socket zu ' + tempip + ' erfolgreich geschlossen');
  except
    Memo1.Lines.Add('Socket zu ' + tempip + ' konnte nicht geschlossen werden');
  end;
  Client.Host := tempip;
  try
    Client.Open;
    Memo1.Lines.Add('Socket zu ' + tempip + ' erfolgreich geöffnet');
  except
    Memo1.Lines.Add('Socket zu ' + tempip + ' nicht geöffnet');
  end;
     repeat
        application.processmessages
     until Client.active;
irgendwie nichts mehr.
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: Socket-Text an mehrere Rechner nacheinander im Netzwerk

  Alt 26. Apr 2007, 18:16
Wie hoch ist das Intervall des Timers? Und step das Ganze mal mit dem Debugger durch.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Maikiboy

Registriert seit: 25. Apr 2007
14 Beiträge
 
#20

Re: Socket-Text an mehrere Rechner nacheinander im Netzwerk

  Alt 26. Apr 2007, 18:17
Intervall ist auf 1000

Debuger kommt glei

Im Projekt pClient ist eine Exception der Klasse ESocketError mit der Meldung Asynchroner Socket-Fehler 10060 aufgetreten.

Das kommt aber erst ganz zum schluss, also nachdem er die letzte von 20IP's aufgerufen hat, und der rechner ist net an. Also irgendwie klappt das net so ganz.

    Memo1.Lines.Add('Socket zu ' + tempip + ' erfolgreich geschlossen'); das macht er immer

    Memo1.Lines.Add('Socket zu ' + tempip + ' erfolgreich geöffnet'); und das.

Aber die danachfolgenden sachen wie SendText scheint er anscheinend net zu machen. Auch die ausgaben in das memo feld passieren nicht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 16:45 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