Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Chatsoftware für LAN
MDCoke
myCSharp.de - Member

Avatar #avatar-2784.jpg


Dabei seit:
Beiträge: 117
Herkunft: Magdeburg

Themenstarter:

Chatsoftware für LAN

beantworten | zitieren | melden

Hallo liebe C# Community,
ich bin neu hier und möchte auch gleich loslegen und mein erstes Projekt vorstellen:

Eine Software zum Chatten per LAN, genannt "KommunikationsplattformPS".
Die Software entwickle ich zurzeit für die Schule, als Absicht, dass die Schüler im Informatikraum während der Stunde auch chatten und Informationen austauschen können

Das Projekt besteht jetz shcon seit 2 Wochen und ich hab jetz noch bis zum Januar Zeit das Programm zur Vollendung zu bringen, daher hoffe ich auf Verbesserungsvorschläge und vielelicht könntet ihr auch sagen, was euch gefällt und was nicht.

Ach und ich hab noch einige Ideen die ich in das Programm im Laufe der Zeit einbauen werde, auf Verbesserungvorschläge werde ich jedoch in höherer Priorität eingehen, sofern sie möglich sind

Lange genug geredet, eine kleine Anleitung:
Wenn das Programm geöffnet ist, könnt ihr einen Kontakt hinzufügen und wenn ihr diesen in der Listbox anklickt mit ihm chatten indem ihr auf verbinden drückt.
Wichtig ist dass einer der beiden PC's die mit einander chatten wollen der Server ist und der andere der Client, der Server muss vor dem Client erstellt sein, was ihr aber wahrscheinlich wisst. Wenn ihr euch zu eurem eigenen PC verbinden wollt, dann gebt einfach 127.0.0.1 ein als IP Adresse... war die Anleitung wirklich nötig? keine Ahnung bin ja neu hier

Download:http://www.materialordner.de/i3V7dz3SRodldPr8wbsEypL0JXog3aub.html

MfG MDCoke
private Nachricht | Beiträge des Benutzers
tscherno
myCSharp.de - Member

Avatar #avatar-2584.gif


Dabei seit:
Beiträge: 637
Herkunft: Nürnberger Land

beantworten | zitieren | melden

Hallo MDCoke,

tolles Programm. Diese schwebenden Textboxen sind spitze.

Ein paar Fehler habe ich gefunden:

Wenn man im Client mehrmals hintereinander ganz schnell auf Senden klickt, stürzt der Server ab.

Wenn ich einen Server erstelle zu dem noch kein Client verbunden ist und ich versuche eine Nachricht zu schicken, stürzt das Programm mit einer NullReferenceException ab.

Das Programm stürzt ab wenn ich mich zu einem Server verbinden will der nicht vorhanden ist.

Mir ist es nicht gelungen eine Unterhaltung mit mehr als 2 Teilnehmern zu führen. (Ist das überhaupt vorgesehen?)

Diese Fehler lassen sich relativ einfach mit hilfe von try/catch sowie einfachen Sanity Checks beheben.

Gruss
tscherno
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von tscherno am .
To understand recursion you must first understand recursion
-
http://www.ilja-neumann.com
C# Gruppe bei last.fm
private Nachricht | Beiträge des Benutzers
MDCoke
myCSharp.de - Member

Avatar #avatar-2784.jpg


Dabei seit:
Beiträge: 117
Herkunft: Magdeburg

Themenstarter:

beantworten | zitieren | melden

danke für die tolle antwort

ich werd mich gleich daran setzen die fehler zu beheben! haste noch verbesserungswünsche? bisher ist nen chat mit mehreren teilnehmern noch nicht vorgesehen, aber ich denke, dass das vielleicht noch ne gute funktion wäre, mit der man das erweitern kann
private Nachricht | Beiträge des Benutzers
shadow1234
myCSharp.de - Member



Dabei seit:
Beiträge: 16

beantworten | zitieren | melden

Könntest du es nochmal hochladen? Wäre sehr nett
private Nachricht | Beiträge des Benutzers
MDCoke
myCSharp.de - Member

Avatar #avatar-2784.jpg


Dabei seit:
Beiträge: 117
Herkunft: Magdeburg

Themenstarter:

beantworten | zitieren | melden

ja, das programm befindet sich jetz in dem status wo es zu ca. 20% fertig ist, morgen lade ich die neue version hoch! die fehler die bekannt sind, sind beseitigt und einige neue funktionen hab ich gerade eingebaut!
private Nachricht | Beiträge des Benutzers
MDCoke
myCSharp.de - Member

Avatar #avatar-2784.jpg


Dabei seit:
Beiträge: 117
Herkunft: Magdeburg

Themenstarter:

beantworten | zitieren | melden

soooooooooooooo:

Mein Chatprogramm geht in die nächste Version!

Verbesserungen:
- Bekannte Fehler beseitigt
- Wenn kein Anzeigebild ausgewählt wurde, sendet das Programm automatisch ein schwarzes Bild
- Performanceverbesserungen, (Grafik deutlich beschleunigt)

Und nun auch eine brandneue Funktion:

Der Server/Client mit dem ihr euch verbunden habt, kann nun Befehle empfangen, zurzeit 4 Befehle!

Die Befehle sind:
Befehl;Ping (Pingt den anderen Rechner an, ob dieser noch verbunden ist)
Befehl;Start;Datei (Öffnet eine Datei/Programm auf dem anderen Rechner)
Befehl;Start;http://www.google.de (Öffnet bspw. google bei dem anderen Rechner)
Befehl;Erstellen;C:/Datei.x (Erstellt Datei.x bei dem anderen Rechner)
Befehl;Löschen;C:/Datei.x (Löscht Datei.x bei dem anderen Rechner)

Bei den letzten beiden Funktionen ist zur Sicherheit noch eine Checkbox hinzugefügt wurden, um nicht unerlaubt Dateien zu löschen oder zu erstellen!

So runterladen könnt ihr euch es hier: http://www.loaditup.de/289494.html

Verbesserungsvorschläge und Kritik erwünscht, auch wie es euch gefällt!
private Nachricht | Beiträge des Benutzers
YpsilonZet
myCSharp.de - Member



Dabei seit:
Beiträge: 78

beantworten | zitieren | melden

Schickes Design, sieht recht gut aus.
Aber habe 2 Fragen:
1.) Ist es Multi-user-fähig? (Gehe ich von aus, aber kanns hier nicht testen)
2.) Könntest du den Sourcecode uppen, habe genau das gleiche als jahresarbeit und bräuchte paar Anregungen (Keine Sorge, kein 1:1 kopieren)

Icq: 201599054
private Nachricht | Beiträge des Benutzers
Aurion
myCSharp.de - Member

Avatar #avatar-2535.gif


Dabei seit:
Beiträge: 114
Herkunft: Berlin

beantworten | zitieren | melden

Anregungen findest du hier: [Tutorial] Client-/Server-Komponente über TCP-Sockets
private Nachricht | Beiträge des Benutzers
MDCoke
myCSharp.de - Member

Avatar #avatar-2784.jpg


Dabei seit:
Beiträge: 117
Herkunft: Magdeburg

Themenstarter:

beantworten | zitieren | melden

@YpsilonZet: Mutliclientfähig hab ich es noch nicht gemacht, werd ich in der nächsten version nachholen (is ja nicht schwer)...

zu dem sourcecode kann ich dir nur sagen, dass de dich dort nich zurechtfinden wirst, da das programm größer ist als man sich denken kann...allein die Server klasse hat schon mehr als 1000zeilen code! ich kann dir natürlich die codes schicken wie ich Nachrichten und Dateien sende/empfange oder wie ich die Verbindung aufbaue!

und übrigens, ich mach das auch als jahresarbeit, will es aber soweit ausbauen, dass es vielleicht sogar bissel bekannter werden kann!
private Nachricht | Beiträge des Benutzers
tscherno
myCSharp.de - Member

Avatar #avatar-2584.gif


Dabei seit:
Beiträge: 637
Herkunft: Nürnberger Land

beantworten | zitieren | melden

Hallo MDCoke,

also so Funktion wie das von löschen von Dateien auf einem anderen Rechner würde ich wieder rausnehmen. Ich würde mich als Benutzer weigern eine Anwendung mit solchen Fähigkeiten zu nutzen.

Gruss
tscherno
To understand recursion you must first understand recursion
-
http://www.ilja-neumann.com
C# Gruppe bei last.fm
private Nachricht | Beiträge des Benutzers
MDCoke
myCSharp.de - Member

Avatar #avatar-2784.jpg


Dabei seit:
Beiträge: 117
Herkunft: Magdeburg

Themenstarter:

beantworten | zitieren | melden

okay danke für den hinweis, das nehm ich sofort raus! aber das starten von anderen anwendungen wie bspw. html seiten kann ich drin lassen oder erstellen von dateien?
private Nachricht | Beiträge des Benutzers
kleines_eichhoernchen
myCSharp.de - Member

Avatar #avatar-2079.jpg


Dabei seit:
Beiträge: 4055
Herkunft: Ursprünglich Vogtland, jetzt Much

beantworten | zitieren | melden

Such mal auf Codeproject oder allgemein bei Google nach WCF Chat. Dort gibts sehr gute Beispiele, die dir bestimmt auch gefallen.
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo MDCoke,
Zitat
aber das starten von anderen anwendungen wie bspw. html seiten kann ich drin lassen oder erstellen von dateien?
für einen kleinen Benutzerkreis wären solche Funktionen vielleicht interessant, aber das dadurch entstehende Sicherheitsrisiko ist so groß, dass dein Programm für die meisten Benutzer mehr als unattraktiv werden würde.

herbivore
private Nachricht | Beiträge des Benutzers
Aurion
myCSharp.de - Member

Avatar #avatar-2535.gif


Dabei seit:
Beiträge: 114
Herkunft: Berlin

beantworten | zitieren | melden

Eventuell kannst du ja einbauen, dass man den anderen erst berechtigen muss, damit er es darf.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Aurion,

wobei eine Funktion, die nicht vorhanden ist, sicher ist, als eine Funktion, die "nur" geschützt ist und deren Schutz man u.U. aushebeln kann. Gut, mag sein, dass meine persönliche Paranoia gerade auf sowas besondern anspringt.

herbivore
private Nachricht | Beiträge des Benutzers
larc0s
myCSharp.de - Member



Dabei seit:
Beiträge: 79

beantworten | zitieren | melden

Sehe ich ähnlich, außerdem sehe ich gerade keinen Sinn in der Funktion.

Das Dateierstellen könntest du akzeptabler machen in dem du eine Funktion zum senden von Dateien einbaust. Ähnlich wie bei ICQ und MSN oder sonst wo.

Und wofür die Funktion zum öffnen? Da würde ich es lieber so machen, dass Internetlinks einfach als solche im Chatfenster angezeigt werden und dann braucht man nur noch draufklicken.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von larc0s am .
private Nachricht | Beiträge des Benutzers
MDCoke
myCSharp.de - Member

Avatar #avatar-2784.jpg


Dabei seit:
Beiträge: 117
Herkunft: Magdeburg

Themenstarter:

beantworten | zitieren | melden

naja die funktionen zum öffnen/erstellen/löschen von dateien hab ich deswegen eingebaut, damit der lehrer die kontrolle über das netzwerk behält... es ist nicht für einen größeren benutzerkreis sondern nur für die schule gedacht, daher gibt es dort auch kein sicherheitsrisiko! ich denke, ich werde dieses programm dann auch so lassen, wie es jetzt ist, da es nur als jahresarbeit gedacht ist und ich eine idee für eine neue software habe!
private Nachricht | Beiträge des Benutzers
TobiMoby
myCSharp.de - Member



Dabei seit:
Beiträge: 4

beantworten | zitieren | melden

Sehr schönes tool.

Gut wäre noch, das man mit der Enter taste senden kann und das die untere textBox scih den lärt!
private Nachricht | Beiträge des Benutzers
MDCoke
myCSharp.de - Member

Avatar #avatar-2784.jpg


Dabei seit:
Beiträge: 117
Herkunft: Magdeburg

Themenstarter:

beantworten | zitieren | melden

danke schön! werd ich mit einfügen!
private Nachricht | Beiträge des Benutzers
MDCoke
myCSharp.de - Member

Avatar #avatar-2784.jpg


Dabei seit:
Beiträge: 117
Herkunft: Magdeburg

Themenstarter:

beantworten | zitieren | melden

so für YpsilonZet der ja den Sourcecode wollte, hier ist der Code zum verschicken von Nachrichten/bzw. zum empfangen:
[CSHARP] public  void NachrichtSenden(EDateityp Datentyp, byte[] Daten, NetworkStream Datenstrom)
            {
                byte[] DateiTyp = new byte[1024];

                if (Datentyp == EDateityp.Nachricht)
                {
                    DateiTyp = Encoding.UTF32.GetBytes("BefehlNachricht");
                }
                if (Datentyp == EDateityp.Text)
                {
                    DateiTyp = Encoding.UTF32.GetBytes("BefehlText");
                }

                Datenstrom.Write(DateiTyp, 0, DateiTyp.Length);
                Thread.Sleep(200);
                Datenstrom.Write(Daten, 0, Daten.Length);
            }[/CSHARP]

In der Funktion kann angegeben werden ob es eine nachricht ist oder ein Text, Text bedeutet, dass der Text gleich gespeichert wird als textdatei bei dem anderen rechner... ich verwende bei dem programm meistens den Dateityp Nachricht! so dann muss der NetworkStream benutzt werden um die Bytes der nachricht in den "Netzwerkfluss" zu schreiben und dann ist die Nachricht im besten fall beim anderen

so dann noch die Funktion zum empfangen von nachrichten, dazu hab ich noch einen timer benutzt (den ich in der pschat.dll mit eingebaut hab), welcher in einem gewissen takt den NetworkStream auf neue Daten überprüft:
[CSHARP]
if (Datenstrom.DataAvailable)
                    {

                        if (Dateityp == psChatNachricht.EDateityp.Keine)
                        {
                            byte[] ZuLesendeDaten = new byte[Client.Available];
                            Datenstrom.Read(ZuLesendeDaten, 0, Client.Available);
                            string Text = Encoding.UTF32.GetString(ZuLesendeDaten);
                            if (Text == "BefehlNachricht")
                            {
                                Dateityp = psChatNachricht.EDateityp.Nachricht;
                            }
//Dazwischen kommt eigntlich noch einiges an Code ;)

else if (Dateityp == psChatNachricht.EDateityp.Nachricht)
                        {
                            byte[] ZuLesendeDaten = new byte[Client.Available];
                            Datenstrom.Read(ZuLesendeDaten, 0, Client.Available);
                            string Text = Encoding.UTF32.GetString(ZuLesendeDaten);
                            EmpfangeneNachricht = Text;
                            //Hier wird das Ereignis ausgelöst, damit der benutzer den text
                            //anzeigen kann
                            OnNachrichtEmpfangen(EmpfangeneNachricht);
                            Verlauf += "\r\n" + EmpfangeneNachricht;
                            Dateityp = psChatNachricht.EDateityp.Keine;
                        }[/CSHARP]

Also wenn Daten da sind, dann wird überprüft ob schon ein Datentyp vorhanden ist wenn nicht wird er auf Nachricht gesetzt und dann wird die Nachricht empfangen bei dem else if block!
private Nachricht | Beiträge des Benutzers
MDCoke
myCSharp.de - Member

Avatar #avatar-2784.jpg


Dabei seit:
Beiträge: 117
Herkunft: Magdeburg

Themenstarter:

beantworten | zitieren | melden

so eine neue version meiner software:

Verbesserungen:
- Enter-Taste lässt Nachricht verschicken
- die F1 Taste Dateien
- Es wurde eine Funktion "Verbinden simulieren" hinzugefügt, mit der man sich zu seinem eigenen PC verbinden kann

Download: http://www.loaditup.de/293794.html
private Nachricht | Beiträge des Benutzers
MDCoke
myCSharp.de - Member

Avatar #avatar-2784.jpg


Dabei seit:
Beiträge: 117
Herkunft: Magdeburg

Themenstarter:

beantworten | zitieren | melden

Hallo Community, eine weitere neue Version:

Verbesserungen:
- Verbessertes Fehlerhandling
- Textbox Aussehen verändert

Download hier: http://www.loaditup.de/298396.html
private Nachricht | Beiträge des Benutzers
MDCoke
myCSharp.de - Member

Avatar #avatar-2784.jpg


Dabei seit:
Beiträge: 117
Herkunft: Magdeburg

Themenstarter:

beantworten | zitieren | melden

So und dazu noch ein bildchen^^
Attachments
private Nachricht | Beiträge des Benutzers