AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Formloses SocketProgramm
Thema durchsuchen
Ansicht
Themen-Optionen

Formloses SocketProgramm

Ein Thema von napsterxx · begonnen am 31. Dez 2007 · letzter Beitrag vom 1. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#1

Formloses SocketProgramm

  Alt 31. Dez 2007, 15:55
Habe einen Server mit einer Form und einen SocketCLient ohne Form. Ich will dass der Client den Server connectet:

Delphi-Quellcode:
program Client;

uses
  ScktComp, windows, SysUtils;

var
  Connected : Boolean = False;
  ClientSocket : TClientSocket;

{$R *.res}

begin

  ClientSocket := TClientSocket.Create(nil);
  ClientSocket.Port := 3460;
  ClientSocket.Host := 'localhost';

  while Connected = False do
  begin
    sleep(10000);
    ClientSocket.Open;
  end;

end.
Sobald beim Server jemand connced dann wird die Caption der Form geändert:
Delphi-Quellcode:
procedure TForm1.ServerSocketClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Form1.Caption := 'Neuer Client';
end;
Aber es funktioniert nicht.
Beim Server habe ich außerdem noch folgendes:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  ServerSocket.Port := 3460;
  ServerSocket.Open;
end;
Kann jemand helfen? Please
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Formloses SocketProgramm

  Alt 31. Dez 2007, 16:08
Mit sleep(10000) legst du den ganzen Prozess schlafen. Da kann also im Hintergrund nix connecten.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Formloses SocketProgramm

  Alt 31. Dez 2007, 16:29
Wenn ich das aber weglasse dann kommt immer ein Fehler das ich so ein Maximum überschritten habe oO
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

Re: Formloses SocketProgramm

  Alt 31. Dez 2007, 16:31
Zitat von napsterxx:
Delphi-Quellcode:
while Connected = False do
  begin
    sleep(10000);
    ClientSocket.Open;
  end;
Wann wird Connected eigentlich true?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Formloses SocketProgramm

  Alt 31. Dez 2007, 16:33
Das wollte ich ja eigenltich machen^^ soll True werden wenn verbindet ist aber irgendwie wird ja nie verbindet
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Formloses SocketProgramm

  Alt 31. Dez 2007, 16:38
Klar wenn das Programm einmal in deiner Schleife ist, kommt es da nicht mehr raus.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Formloses SocketProgramm

  Alt 31. Dez 2007, 16:39
Zitat von napsterxx:
Das wollte ich ja eigenltich machen^^ soll True werden wenn verbindet ist aber irgendwie wird ja nie verbindet
Kann es auch gar nicht wenn du den Prozess schlafen legt. Der Implementierung von TClientSocket ist auf asynchronität/Events ausgelegt. AFAIK basiert im Hintergrund des TCP/IP-Stacks über Windows-Messages.

Willst du einen blockierenden Ansatz so brauchst du TCP/IP-Komponenten die einen synchronen ablauf ermöglichen. Es gibt für Delphi welche, aber der Name fällt mir im Moment nicht ein.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Formloses SocketProgramm

  Alt 31. Dez 2007, 16:39
Ich kenn die Socket-Komponenten nicht ganz auswendig. Aber es könnte sein, dass sie mit Messages arbeiten. Deswegen würde ich mal eine Messageschleife vorschlagen. Ob das die Lösung ist kann ich so nicht sagen.
Messageschleife an sich sieht so aus
Delphi-Quellcode:
uses windows, messages
var msg:Tmsg;
...
while getmessage(msg,0,0,0) do
begin
  translatemessage(msg); //nur nötig, wenn Tastendrücke ausgewertet werden müssen
  dispatchmessage(msg);
end;
Die Schleife wird mittels postquitmessage beendet. aber du müsstest dir das wahrscheinlich anders anpassen (vielleicht auch peekmessage und/oder waitmessage benutzen)....
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Formloses SocketProgramm

  Alt 31. Dez 2007, 16:42
what?? jetzt versteh ich nichts mehr.
wie kann ich dsa dann machen das mein Prozess nicht schlafen gelegt wird, aber nur alle 10 sekunden beginnt zu verbinden?
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Formloses SocketProgramm

  Alt 31. Dez 2007, 16:43
Timer
Markus Kinzler
  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 21:28 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