AGB  ·  Datenschutz  ·  Impressum  







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

Chatserver mit TServerSocket

Offene Frage von "Capa"
Ein Thema von Capa · begonnen am 3. Apr 2010 · letzter Beitrag vom 5. Apr 2010
Antwort Antwort
Seite 2 von 2     12   
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#11

Re: Chatserver mit TServerSocket

  Alt 3. Apr 2010, 21:22
... aber ist nicht jede Anwendung sowohl Server als auch Client? Sonst läuft ja der gesamte Datenverkehr über einen Computer?
Ralph
  Mit Zitat antworten Zitat
Capa

Registriert seit: 26. Okt 2003
102 Beiträge
 
RAD-Studio 2010 Arc
 
#12

Re: Chatserver mit TServerSocket

  Alt 3. Apr 2010, 21:27
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.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#13

Re: Chatserver mit TServerSocket

  Alt 3. Apr 2010, 21:33
Ist es denn möglich, dass jede einzelne Anwendung zugleich Server und Client ist?
Oder ist das jetzt 'ne ganz dumme Frage?


edit: Denn sonst könnten verschiedene Anwender Daten nur austauschen, wenn der eine Server in Betrieb ist - und das wäre ja kaum praktikabel!
Ralph
  Mit Zitat antworten Zitat
Capa

Registriert seit: 26. Okt 2003
102 Beiträge
 
RAD-Studio 2010 Arc
 
#14

Re: Chatserver mit TServerSocket

  Alt 3. Apr 2010, 22:05
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.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#15

Re: Chatserver mit TServerSocket

  Alt 3. Apr 2010, 22:20
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!
Ralph
  Mit Zitat antworten Zitat
Capa

Registriert seit: 26. Okt 2003
102 Beiträge
 
RAD-Studio 2010 Arc
 
#16

Re: Chatserver mit TServerSocket

  Alt 4. Apr 2010, 23:10
??? Hier steht die Frage in diesem Thread ???


Delphi-Quellcode:
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;
Mit diesem Code hab ich immo folgendes Problem wenn zum bsp mehrere clients gleichzeitig
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
 if (socket.socket.Connections[a].Connected) then ... das ganze abfragen will.





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.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#17

Re: Chatserver mit TServerSocket

  Alt 5. Apr 2010, 14:33
Zitat von Capa:
Warum sollte ich eine Exception auslösen wenn der Username schon vergeben ist ?
Die Funktion ChangeNickname() soll den Nickname ändern und ansonsten nichts weiteres tun.
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.
  Mit Zitat antworten Zitat
Capa

Registriert seit: 26. Okt 2003
102 Beiträge
 
RAD-Studio 2010 Arc
 
#18

Re: Chatserver mit TServerSocket

  Alt 5. Apr 2010, 15:09
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.
  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 14:02 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