![]() |
Re: Chatserver mit TServerSocket
... aber ist nicht jede Anwendung sowohl Server als auch Client? Sonst läuft ja der gesamte Datenverkehr über einen Computer?
|
Re: Chatserver mit TServerSocket
bei dieser version ist das der fall das alles über den server läuft dafür gibt es ja
einen server.Wenn du einen server hast mit 3 clients dann schickt zum bsp der client1 seine nachricht an den server und jenachdem ob du ihm befehle mitgibst leitet der es an alle weiter oder nur an einen bestimmten user. |
Re: Chatserver mit TServerSocket
Ist es denn möglich, dass jede einzelne Anwendung zugleich Server und Client ist?
Oder ist das jetzt 'ne ganz dumme Frage? :roll: edit: Denn sonst könnten verschiedene Anwender Daten nur austauschen, wenn der eine Server in Betrieb ist - und das wäre ja kaum praktikabel! |
Re: Chatserver mit TServerSocket
Ich weiß ja nicht was genau du vorhast aber der großteil des internets basiert auf
dem server/client design, wie zum bsp ein web/ftp/pop3/smtp/game oder ssh-server alle basieren darauf das es einen servergibt worauf die clients connecten. Wenn ich das mit den P2P netzen richtig verstanden hab dann sollte das wohl eher das sein was du suchst aber keine ahnung wie das genau funktioniert damit hab ich mich noch nicht beschäftigt. |
Re: Chatserver mit TServerSocket
Ich denke, die Informationen muss ich jetzt erst einmal in Ruhe "sacken lassen".
"Peer to Peer" ist also offenbar das Thema mit dem ich mich beschäftigen muss. Deine Infos haben mich schon einen Schritt weiter gebracht! Vielen Dank für deine Geduld mit mir! |
Re: Chatserver mit TServerSocket
??? Hier steht die Frage in diesem Thread ???
Delphi-Quellcode:
Mit diesem Code hab ich immo folgendes Problem wenn zum bsp mehrere clients gleichzeitig
procedure TUserlist.Broadcast(text: string; Socket: TServerSocket);
var a: integer; begin for a := 0 to socket.Socket.ActiveConnections-1 do begin if (a <= socket.Socket.ActiveConnections-1) then socket.Socket.Connections[a].SendText(text); end; end; disconnecten dann tut der ja eine nachricht an ALLE clienten schicken leider auch an die die mit disconnecten. Das ist der Grund warum ich eine Fehlermeldung bekomme. Hab gehofft das wenn ich diese abfrage mache das es dann nicht mehr kommt aber irgendwie klappt das nicht. Weiß vielleicht einer wie ich das lösen kann ohne eine fehlermeldung zu bekommen ? is halt nur schwer weil ich ja schon nen error bekomme wenn ich mit
Delphi-Quellcode:
das ganze abfragen will.
if (socket.socket.Connections[a].Connected) then ...
Ebenso hab ich ein Problem damit wenn ich mein Programm starte und die downloads die ich zur verfügung stellen will sind auf form3.listview1 dann muss ich erst form3.show machen bevor ich die liste auf dieser form überhaupt erstmal auslesen kann. |
Re: Chatserver mit TServerSocket
Zitat:
Insbesondere sollte die Funktion keinen String aufbereiten, der auf der Benutzeroberfläche angezeigt wird. Es gibt zwei Fehlermöglichkeiten: a.) der alte Nickname existiert nicht b.) der neue Nickname ist schon vergeben Die Funktion könnte nun einen Integerwert mit 0=alles ok, 1=alter Nickname existiert nicht und 2=neuer Nickname ist schon vergeben zurückliefern. Aber mit Exceptions wird ChangeNickname() weiter vereinfacht. Die aufrufende Funktion muss nicht den Returnwert auswerten, sondern sie wird im Fehlerfall durch eine Exception unterbrochen. Aus der Funktion wird eine Procedure - eine Auswertung des Rückgabewertes ist nicht mehr nötig. ChangeNickname() ändert den Namen, sollte es ein Problem geben wird eine Exception ausgelöst. |
Re: Chatserver mit TServerSocket
eine frage was bringt dem user die exception ? nix weil er nicht weiß was los ist.
Ich gehe normalerweise davon aus der client und server nicht am selben rechner sitzen. Ich habe die funktion ein wenig umgebaut zwar nciht perfekt aber meiner meinung nach immernoch besser als ne exception auszulösen die nur der server mitbekommt und nicht der client. Außerdem wertet changenickname mittlerweile auch aus ob die namen zeichen enthalten die der serverbetreiber nicht haben will. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz