AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Routerproblem

Ein Thema von Rastaman · begonnen am 24. Jan 2005 · letzter Beitrag vom 24. Jan 2005
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#11

Re: Routerproblem

  Alt 24. Jan 2005, 16:53
Server:
Code:
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Server.Port := 4662;
  Server.Active := True;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Server.Active := False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Server.Socket.SendText(Edit1.Text);
end;

procedure TForm1.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add(Socket.ReceiveText)
end;

end.
Client
Code:
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Client.Host := '254.254.254.254';
  Client.Port := 4662;
  Client.Active := True;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Client.Active := False;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Client.Socket.SendText(Edit1.Text)
end;

procedure TForm1.ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add(Socket.ReceiveText)
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von tn249
tn249

Registriert seit: 18. Jan 2004
Ort: München
164 Beiträge
 
Delphi 2005 Personal
 
#12

Re: Routerproblem

  Alt 24. Jan 2005, 17:06
Zitat:
property Active: Boolean;

Description

Before attempting to use or change the socket connection, read Active to determine whether the connection is open and ready. For client sockets, setting Active opens or shuts down a socket connection to another machine. For server sockets, setting Active opens or shuts down a listening connection that makes the socket available for client requests.

At design time, set Active to True to make the socket open a connection when the application starts running. At runtime, use the Open or Close method to open or close the connection.
soll heißen, dass du statt client.active client.open benutzen sollst

MfG
tn249
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#13

Re: Routerproblem

  Alt 24. Jan 2005, 17:20
Gut danke das klappt bestens
Allerdings hab ich immer noch das Problem dass ich nicht Client sein kann was zwar nichts macht, da ich immer server sein könnte, aber es regt mich trotzdem auf. Wie gesagt, alle Ports sind frei für Rein und für Raus.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Routerproblem

  Alt 24. Jan 2005, 17:45
das ->254.254.254.254<- ist deine IP? Bist du dir sicher das es klappt wenn dein freund als Server fungiert und dir eine Nachricht schickt? Denn mit
Server.Socket.SendText(Edit1.Text); sollte das eigentlich nicht funktionieren.
Dir sollte bewusst sein das zu einem Server mehrere Clients verbinden können und über deinen Quelltext wäre es ja gar nicht möglich einzelnen Clients zu antworten (du gibst ja schließlich nirgends was an was den Client spezifizieren würde). Spätestens an dieser Stelle müsstest du also schon stutzig geworden sein das der Quelltext nicht stimmen kann.

probiers mal mit
ServerSocket1.Socket.Connections[0].SendText(Edit1.Text); Die 0 steht hierbei für die Verbindung mit dem Index 0. Wenn also mindestens ein Client verbunden ist kannst du somit an den Client-0 eine Nachricht schicken. Wenn 2 Clients verbunden wären könntest du mit
ServerSocket1.Socket.Connections[1].SendText(Edit1.Text); eine Nachricht an den zweiten client schicken.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#15

Re: Routerproblem

  Alt 24. Jan 2005, 17:47
Ok danke. Die Ip ist natürlich nur erfunden und soll meine dynamische halt ersetzen
Kann ich denn Informationen mitsenden, von welchem Client gesendet wurde? Und dann halt nur an den entsprechenden zurücksenden?
Das Problem mit der Verbindung zu ihm besteht übrigens immer noch Hoffentlich weis das noch einer.

<edit>Oder einfach so ?
Code:
Server.Socket.Connections[Socket].SendText('Text');
</edit>
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Routerproblem

  Alt 24. Jan 2005, 18:01
im "ServerClientRead" bekommst du den Parameter "Socket" des sendenen Clients. Wenn du dir diesen merkst kannst du dann auch über
GemerkterSocket.SendText(Edit1.Text); an diesen zurück senden.
Und wenn du das ganze nur mit einem Client machst kannst du auch einfach das ganze dem "Connection[0]", wie schon beschrieben, realisieren
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 00: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