AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem mit Verbindungsaufbau
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Verbindungsaufbau

Ein Thema von fran · begonnen am 19. Nov 2005 · letzter Beitrag vom 1. Dez 2005
Antwort Antwort
Seite 1 von 2  1 2      
fran

Registriert seit: 4. Nov 2005
38 Beiträge
 
Delphi 6 Personal
 
#1

Problem mit Verbindungsaufbau

  Alt 19. Nov 2005, 17:28
Hallo ich habe da mal eine Frage.

Und zwar habe ich in einer Client/Server Anwendung beim Client einen Button, wenn ich auf den Klicke soll die Verbindung zum Server geöffnet werden und gleich irgendwas gesendet.

Das Problem ist das zwar die Verbindung hergestellt wird, aber der Text erst beim zweiten Klick auf den Button gesendet wird. Ich dachte villeicht braucht der ein paar Sekunden um die Verbindung herzustellen und habe deshalb testweise ein sleep dazwischen geschaltet, aber leider ging das auch nicht.
Hier mal ein Ausschnitt vom Code:

Delphi-Quellcode:
clientsocket1.Active:=true;
ClientSocket1.Socket.SendText('test');
Vielleicht kann mir ja einer von euch weiterhelfen

Vielen Dank schon mal im voraus

Fran
  Mit Zitat antworten Zitat
Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#2

Re: Problem mit Verbindungsaufbau

  Alt 19. Nov 2005, 17:33
versuche es mal so:

Delphi-Quellcode:
clientsocket1.Active:=true;

if clientsocket1.active = true then
begin
ClientSocket1.Socket.SendText('test');
end;

mfg Net7
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  Mit Zitat antworten Zitat
Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Problem mit Verbindungsaufbau

  Alt 19. Nov 2005, 17:35
Probiers mal so, das hat bei mir den Fehler behoben.

ClientSocket1.Socket.SendText('Test' + #13#10)
Marco
Wer Rechtschreibfehler findet, der darf sie behalten

Carpe Diem - Nutze den Tag (und zwar den ganzen!)
  Mit Zitat antworten Zitat
fran

Registriert seit: 4. Nov 2005
38 Beiträge
 
Delphi 6 Personal
 
#4

Re: Problem mit Verbindungsaufbau

  Alt 19. Nov 2005, 19:09
Zitat von Net7:
versuche es mal so:

Delphi-Quellcode:
clientsocket1.Active:=true;

if clientsocket1.active = true then
begin
ClientSocket1.Socket.SendText('test');
end;

mfg Net7
Leider löst das nicht mein Problem. Mein Problem war ja nicht eine Fehlermeldung, die man so geschickt abfängt, sondern das er zwar den Verbindungsbefehl ausführt, aber scheinbar erst nachdem er den send-Befehl ausgeführt hat. Das ist zwar komisch, da es im Code andersrum steht, aber anders kann ich mir das nicht erklären. Denn wenn ich das zweite Mal auf den Button klicke ist eine Verbindung da und es wird auch die Nachricht gesendet.

@Taladan: Was sollen denn die Zahlen bewirken? Bei mir tun die nichts. Jedenfalls nichts offensichtliches.
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#5

Re: Problem mit Verbindungsaufbau

  Alt 19. Nov 2005, 19:30
Du darfst erst ewtas senden wenn die verbindung wirklich aufebaut ist und mit active auf true setzten wird sie nicht gleich aufgebaut.
Mal so nebenbai sowas mit sleep zu lösen ist sehr unschön.

Zu deinem Problem: Sende die Botschaft erst wenn beim clientsocket des Ereignis Connect auftritt dann müsste alles funkionieren
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
fran

Registriert seit: 4. Nov 2005
38 Beiträge
 
Delphi 6 Personal
 
#6

Re: Problem mit Verbindungsaufbau

  Alt 19. Nov 2005, 19:46
Zitat von gsh:
Mal so nebenbei sowas mit sleep zu lösen ist sehr unschön.
War zwar nur zum Test, aber trotzdem warum ist das unschön? Gibst da vielleicht eine elegantere Möglichkeit, von der ich noch nichts weiß?

Ich weiß sleep legt das ganze Programm lahm, aber ein paar Millisekunde merkt man doch nicht wirklich.
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#7

Re: Problem mit Verbindungsaufbau

  Alt 19. Nov 2005, 23:15
Sag wir mal dein prog braucht 50 mili zum connecten. Also gibst du ihm einen sleep von 100 mili. Dein Prog funkt. Doch irgenwann ist der server oder der client so ausgelasstet des er 150 mili braucht zum connecten, was passiert? Dein Server bekommt die erste Nachricht nicht und alles kann versagen ...

Deswegen ist sleep für mich generell unschön. Wenn du aber denoch mal so ein sleep brauchst was ja vorkommen kann und auch in ordnung sein kann dann rate ich dir zu Hier im Forum suchenDelay

*back to topic*
Hast du des mit dem Ereigniss ausprobiert?
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
flossinger

Registriert seit: 22. Aug 2005
Ort: südlich der Alpen
109 Beiträge
 
Delphi 5 Standard
 
#8

Re: Problem mit Verbindungsaufbau

  Alt 1. Dez 2005, 10:51
ja den Text solltest du erst senden, wenn die Verbindung steht.
Code:
clientsocket1.open;

repeat
application.processmessages;
until clientsocket.active;

ClientSocket1.Socket.SendText('test');
Das geht, hat aber noch einen Schönheitsfehler. Wenn der Server die Verbindung nicht annehmen kann, bleibst du mit dem client Programm in der Schleife hängen. Darum solltest du in die repeat Schleife noch eine Fehlerabfrage einbauen.

Eine bewährte Variante ist die, dass du in der onerror routine eine globale Variable veränderst, die in der repeat Schleife abgefragt wird. Das sendtext machst du auch noch von der Variablen abhängig.

der Flossinger
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#9

Re: Problem mit Verbindungsaufbau

  Alt 1. Dez 2005, 17:06
Des ist auch unschön. Das ist viel besser:

Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  ClientSocket1.Active := true;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Socket.SendText('test');
end;
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
flossinger

Registriert seit: 22. Aug 2005
Ort: südlich der Alpen
109 Beiträge
 
Delphi 5 Standard
 
#10

Re: Problem mit Verbindungsaufbau

  Alt 1. Dez 2005, 19:39
Ja genau,

ist eigentlich naheliegend.

der Flossinger
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:04 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