AGB  ·  Datenschutz  ·  Impressum  







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

Frage zu ScktComp

Ein Thema von Morlon · begonnen am 7. Jan 2005 · letzter Beitrag vom 7. Jan 2005
Antwort Antwort
Morlon

Registriert seit: 15. Dez 2004
Ort: Dillingen
38 Beiträge
 
Delphi 7 Professional
 
#1

Frage zu ScktComp

  Alt 7. Jan 2005, 05:28
Hallo,
Ich schreibe gerade an einem kleinen Spiel, dass auch über Netzwerk laufen soll. Dafür hab ich mir die ScktComp genommen und eine Server/Client verbindung aufgebaut. Das klappt bis auf kleine Probleme auch wunderbar. Das größte Problem das ich hab ist allerdings, dass ich vom server aus nix senden kann.

Das ganze sieht so aus: Der User kann einstellen, ob er server oder client ist und kann eine ip-adresse angeben.
Wenn er nun Client ist wird dem Client (Client: TClientSocket) die IP und ein Port zugewiesen und er versucht eine Verbindung aufzubauen. Wenn er Server ist (Server: TServerSocket) wird ihm der Port zugewiesen und er wartet auf den Client.

Sobald die Verbindung steht kann der Client soviel senden wie er mag. Aber wenn ich mit dem Server senden will ( Server.Socket.SendText('string') ) bekomm ich die fehlermeldung, dass der server keine zieladresse hat. Ist ja auch logisch, hab ihm keine Zugewiesen.
Das dumme is nur, ich weiß nich wie ich dem Server die IP zuweis. Beim Client gehts über Client.Host, aber Host kennt mein Server nicht Kann mir da jemand helfen?

Und wenn ich schonmal dabei bin : Ich hab noch 2 Schönheitsfehler, die zwar nicht schlimm sind, aber wenn mir jemand helfen kann wär super.
1.) Wenn der Client vor dem Server versucht eine Verbindung aufzubauen bekomm ich ne Fehlermeldung und der Client bricht ab. Ich hab das gelöst indem ich die Fehlermeldung (10061) abfang, den Client schließe und neu öffne (Client.close; Client.open; ). Gibt es da evtl eine elegantere Lösung? Irgend einen Befehl, mit dem der Client dauerhaft versucht eine Verbindung aufzubauen?
2.) Es gibt einen Trennen-Button um die Verbindung zu schließen. Wenn dieser vom Server gedrückt wird passiert folgendes: Ich schließe den Server (server.active := false) und der client merkt mittels client.ondisconnect, dass kein server mehr da ist und trennt sich ebenfalls.
Wenn nun der Client trennen will schließt er sich mittels client.active := false. der server sollte nun über server.onclientdisconnect merken, dass er sich zu schließen hat und ebenfalls auf active := false gehn.
Irgendwie merkt er auch, dass der Client weg ist, aber ich bekomm eine Fehlermeldung 10038 Zugriffsverletzung bei Adresse...(Speicheradresse). Irgendwie soll das ja nich so sein Ich hab das gelöst indem ich folgendes mach: wenn der client trennen drückt schickt er einen string an den server. dieser wertet diesen aus und weiß nun, dass er sich zu schließen hat.
Das funktioniert zwar, aber ist irgendwie nicht so, wie ichs mir vorgestellt hab Weiß da jemand Rat?


Danke euch schonmal,
Morlon
  Mit Zitat antworten Zitat
Morlon

Registriert seit: 15. Dez 2004
Ort: Dillingen
38 Beiträge
 
Delphi 7 Professional
 
#2

Re: Frage zu ScktComp

  Alt 7. Jan 2005, 06:06
1. Problem gelöst Wenn der Server senden mag muss das so aussehn: Server.Socket.Connections[0]

Aber falls wer noch ratschläge zu den schönheitsfehlern hat, bin ganz ohr
  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 14:53 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