Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 13:15

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



C# Chatserver

Discussion on C# Chatserver within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
RedJ0hn's Avatar
 
elite*gold: 0
Join Date: Sep 2008
Posts: 2,368
Received Thanks: 415
C# Chatserver

Hallo Leute,

ich habe folgende Frage, da ich für die Schule einen Chat Server in C# schreiben muss.

Und zwar geht es um folgendes ich habe einen TCP Server der auf einem Port lauscht, und bereits die erste Anfrage annimmt und bearbeitet. Er akzeptiert neue Clients und diese können sich schon einen Namen zu weisen.

Jetzt ist das Problem, dass jeder Client welcher auf dem Server verbunden ist eine Nachricht bekommen soll. Ich habe ein Klasse und darin die Methode für die Verbindung, welche folgendermaßen aussieht:

Aus einer meiner Klassen:



Ich denke ich muss, meine Clients einer Liste hinzufügen, und dann sagen jeder in der Liste soll die Nachricht empfangen.

Jedoch habe ich da anscheinend noch irgendwo ein Fehler, da mir gesagt wird, dass Verbindungen keinen Wert enthält und leider weiß ich nicht, wie man einen client dieser Liste hinzufügen soll
Die Liste:

Vielen Dank.

MfG
RedJ0hn is offline  
Old 05/24/2013, 20:08   #2


 
elite*gold: 0
Join Date: Feb 2010
Posts: 7,220
Received Thanks: 6,758
Wo ist das Problem deiner Liste etwas hinzuzufügen? Die Liste ist vom Typ "Verbindung".
Also wärs 'verbindungen.Add(verbindung);' - Oder wo hapert es bei dir?
#SoNiice is offline  
Old 05/24/2013, 20:13   #3
 
RedJ0hn's Avatar
 
elite*gold: 0
Join Date: Sep 2008
Posts: 2,368
Received Thanks: 415
Ich glaube das Problem ist, dass ich die Klasse und Liste doof benannt habe, aber davon abgesehen kann ich Verbindung nicht einsetzen, weil das der Name der Klasse ist und nicht als Variable verwendet werden kann.
RedJ0hn is offline  
Old 05/24/2013, 20:22   #4


 
elite*gold: 0
Join Date: Feb 2010
Posts: 7,220
Received Thanks: 6,758
Mir ist gerade erst aufgefallen, dass da ja gar nicht die selbe Methode ist in den beiden Spoilern

Habe dir mal eine PN geschickt, schau es dir am besten einfach mal an ;-)
#SoNiice is offline  
Thanks
1 User
Old 05/24/2013, 20:57   #5
 
RedJ0hn's Avatar
 
elite*gold: 0
Join Date: Sep 2008
Posts: 2,368
Received Thanks: 415
^Erstmal Vielen Dank für die Mühe.

Jedoch würde ich es gerne ohne Hashtable machen, gibt es dann noch eine andere Alternative?

MfG
RedJ0hn is offline  
Old 05/24/2013, 20:59   #6


 
elite*gold: 0
Join Date: Feb 2010
Posts: 7,220
Received Thanks: 6,758
Warum möchtest du die Nachrichten überhaupt vom Clienten aus an alle senden?

Client -> Server -> All Clients
#SoNiice is offline  
Old 05/24/2013, 21:10   #7
 
RedJ0hn's Avatar
 
elite*gold: 0
Join Date: Sep 2008
Posts: 2,368
Received Thanks: 415
Quote:
Originally Posted by SoNiice View Post
Warum möchtest du die Nachrichten überhaupt vom Clienten aus an alle senden?

Client -> Server -> All Clients
Naja,

ich wollte den Server so aufbauen, dass es einen Channel gibt, in dem alle schreiben und die Nachrichten die ohne jegliche Befehle geschrieben werden, kann jeder lesen, also ein Broadcast innerhalb des Servers an die Clients.

Dann wollte ich das es eine /flüster Funktion gibt für einzel Gespräche.

Also ein Client --sendet Nachricht --> Server --> X
--> Y
--> Z

Ich hoffe das Problem was ich habe ist soweit klar, also wenn ich die Methode aufrufe und etwas schreibe dann bekommt nur der Client die Nachricht der diese auch geschrieben hat. Darum brauche ich eine Möglichkeit jeden Clienten der auf den Server ist anzusprechen.

Desweiteren wäre es ja schön eine Benachrichtigung zu haben für jeden neuen User Zugang. Also XYZ hat den Server betreten / verlassen.

MfG
RedJ0hn is offline  
Old 05/24/2013, 21:31   #8


 
elite*gold: 0
Join Date: Feb 2010
Posts: 7,220
Received Thanks: 6,758
Du erstellst auf deinem Server eine Liste mit den Verbindungen, bei jeder eingehenden Verbindung fügst du eine neue in die Liste ein. Wenn der Server eine Nachricht vom Clienten empfängt überprüft dieser diese Nachricht auf einen bestimmten Parameter, wenn der nicht gesetzt ist, geht er die Liste durch und sendet an jeder User die Nachricht vom anderen User. Der Client empfängt diese und verarbeitet sie.

Ich verstehe nicht so ganz, was bei dir daran hapert.
#SoNiice is offline  
Thanks
1 User
Old 05/25/2013, 14:01   #9
 
RedJ0hn's Avatar
 
elite*gold: 0
Join Date: Sep 2008
Posts: 2,368
Received Thanks: 415
Quote:
Originally Posted by SoNiice View Post
Du erstellst auf deinem Server eine Liste mit den Verbindungen, bei jeder eingehenden Verbindung fügst du eine neue in die Liste ein. Wenn der Server eine Nachricht vom Clienten empfängt überprüft dieser diese Nachricht auf einen bestimmten Parameter, wenn der nicht gesetzt ist, geht er die Liste durch und sendet an jeder User die Nachricht vom anderen User. Der Client empfängt diese und verarbeitet sie.

Ich verstehe nicht so ganz, was bei dir daran hapert.
Soo, erstmal vielen Dank. Ich habe es jetzt soweit geschafft, das Einzige Problem, was ich jetzt habe ist, dass nur jede Zweite Nachricht ankommt <.<

MfG
RedJ0hn is offline  
Old 05/25/2013, 14:10   #10
 
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
Der Debugger ist dein Freund +g+
Entweder es ist ein Bug oder ein Logikfehler.
Ohne den Code können wir dir da schlecht weiterhelfen
dready is offline  
Old 05/25/2013, 17:05   #11
 
RedJ0hn's Avatar
 
elite*gold: 0
Join Date: Sep 2008
Posts: 2,368
Received Thanks: 415
Quote:
Originally Posted by dready View Post
Der Debugger ist dein Freund +g+
Entweder es ist ein Bug oder ein Logikfehler.
Ohne den Code können wir dir da schlecht weiterhelfen

Dürfte vermutlich ein Logik Fehler sein.

Die Kommentare könnt ihr Ignorieren sind nur Infos für mich bzw. Sachen die noch zu machen sind.

Ich bin derzeit noch am überlegen, wie ich meiner TCP Liste eindeutig die Clientnamen zuweisen kann.

MfG
RedJ0hn is offline  
Old 05/25/2013, 19:01   #12


 
elite*gold: 0
Join Date: Feb 2010
Posts: 7,220
Received Thanks: 6,758
Entweder bin ich blind oder du hast uns nicht die Funktion für's senden der Nachrichten gegeben.
#SoNiice is offline  
Old 05/25/2013, 19:44   #13
 
RedJ0hn's Avatar
 
elite*gold: 0
Join Date: Sep 2008
Posts: 2,368
Received Thanks: 415
Quote:
Originally Posted by SoNiice View Post
Entweder bin ich blind oder du hast uns nicht die Funktion für's senden der Nachrichten gegeben.
Code:
                foreach (TcpClient c in Liste)
                {
                    for (int i = 0; i < Liste.Count; i++) // TCP CLient einen eindeutigen Name zuweisen
                    {
                        info = new StreamWriter(Liste[i].GetStream());

                        info.WriteLine(clientname + " hat den Raum betreten");
                        info.Flush();
                        info = null;
                    }
                }
Habe das nur etwas umgeschrieben, bis jetzt kriegt man also selbst auch noch die Nachricht, wie gesagt, wenn ich den TCP Client einen Namen zugewiesen habe, kann ich dies ja beheben und eine Flüster Funktion noch extra einbauen.
Also bis jetzt kriegt jeder im Chat die Nachricht.
RedJ0hn is offline  
Reply


Similar Threads Similar Threads
Chatserver
05/18/2013 - General Coding - 4 Replies
Hallo, ich hätte folgende Frage und zwar habe ich in C# einen Chat Client geschrieben nun denke ich darüber nach auch den dazu passenden Server zu schreiben, jedoch ist dies meiner Meinung nach nur sinnvoll, wenn dieser auch auf einem Ubuntu / Linux System ausgeführt werden kann. Nun wüsste ich gerne, welche Programmiersprache sich da am ehesten anbietet, habe über PHP nachgedacht. MfG
Minecraft Chatserver Bug
08/04/2012 - Minecraft - 2 Replies
Das ist wohl das Schlimmste , was einem ServerAdmin geschehen kann! So siehts aus: Man stoppt den Server beispielsweise per Webinterface oder per /stop dabei wird jediglich der Server mit den Plugins heruntergefahren , der Rest ist noch ohne Plugins online und kann sich bewegen sowie Chatten, befehle funktionieren da auch nicht mehr. Startet man den Server jetzt jedoch neu wird ein neuer ChatServer mit gestartet und der alte bleibt trotzdem an bis jemand den Prozess killt , was bei...
[C++] TCP Chatserver Paket
08/11/2011 - C/C++ - 10 Replies
Hi, liebe EPvP-Community. Ich habe mir mit der Hilfe von Google, Foren, Downloads usw. einen pro TCP Server geschrieben, der als Chatserver dienen soll. Die Basis ist ja nun soweit fertig, aber mir fehlt jetzt noch die Paket-Methode(Das Protokoll zum Versenden der Informationen zwischen Client und Server). Hab damals nur in VB geschrieben, so wars dann egal, aber nun möchte ich es pro like machen(Google hat nichts dazu ausgespuckt). Also, wenn jemand Tipps usw. hat, post it!
Chatserver verbindung
07/27/2010 - S4 League - 6 Replies
wie kann man schnell die chatserver verbindung unterbrechen?^^ meistens wenn ich mit der Super hmg in einen raum gehe passiert das :o allerdings dauert dies viel zu lange :o
Aion Chatserver
07/19/2010 - Aion Private Server - 2 Replies
Guten Abend, ich bin Teammitglied eines AionServers. Mich würde gern mal interrissieren, was man anstellen müsste um den Chatserver auf einen deutschen Aionserver im Gange zu bringen. Der server läuft auf der Version ist 1.9.x.x . ICQ: 354-134-443 URL: Aion-Overhill Dort ist mein Nick Buffy.



All times are GMT +1. The time now is 13:16.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.