Server in C# scheriben
-
Hallo,
ich versuche mich gerade daran einen Server in C# zu schreiben, aber leider funktioniert es nicht so, wie es soll. Nach dem Verbindungsaufbau zum Server soll eine Nachricht empfangen werden, aber das passiert leider nicht. Wenn ich mich mit Putty zu meinem Server verbinde, dann kommt nichts an.
Das ist der Quellcode:
public partial class Server : Form { private Thread ServerThread; private TcpListener Listener; private StreamWriter Writer; public Server() { InitializeComponent(); ServerThread = new Thread(ServerCallback); ServerThread.Start(); } private void ServerCallback() { Listener = new TcpListener(System.Net.IPAddress.Any, 1337); //Listener.Server.Blocking = true; Listener.Start(); while (true) { TcpClient Client = Listener.AcceptTcpClient(); NetworkStream NetStream = Client.GetStream(); Writer = new StreamWriter(NetStream); Writer.Write("Hello!"); //Client.Close(); } } protected override void OnClosing(CancelEventArgs e) { ServerThread.Abort(); Listener.Stop(); base.OnClosing(e); } }
Woran könnte das liegen? Ich bin total ratlos!
Vielen Dank
Maxiii
-
Stream closen! Hier gucken
http://www.codeplanet.eu/tutorials/csharp/4-tcp-ip-socket-programmierung-in-csharp.html?start=2
-
Amun Ra schrieb:
Stream closen! Hier gucken
http://www.codeplanet.eu/tutorials/csharp/4-tcp-ip-socket-programmierung-in-csharp.html?start=2
Bring leider alles nix oder ich mache es falsch. Es kommt einfach keine Nachricht an
-
Doku aufmerksam lesen, mit dem Debugger durchsteppen, vielleicht das eine oder andere Beispielprogramm angucken ... sollte helfen.
-
Nur mal so als Ansatz. Vielleicht liegt es auch ganz einfach an deinem Client. Ich würde empfehlen, dass du dir selbst einen schreibst (der natürlich auf einem anderen Port läuft) und einfach mal schaust was passiert. Ich weiß zwar nicht wirklich wie es mit Putty aussieht, aber das verwendet doch SSH und andere Protokolle. Dein Server verwendet aber schleicht und einfach TCP. Das ist eine ganz andere Ebene im OSI-Layer.
Lies dir einfach mal die betreffenden Abschnitte hier drin durch. Ist recht umfangreich, als Einsteigerlektüre oder um einen umfassenderen Wissenstand zu erhalten hilfreich: http://www-alt.uni-trier.de/urt/user/baltes/docs/csharp/csharp.htm
-
dasonmos schrieb:
Lies dir einfach mal die betreffenden Abschnitte hier drin durch. Ist recht umfangreich, als Einsteigerlektüre oder um einen umfassenderen Wissenstand zu erhalten hilfreich: http://www-alt.uni-trier.de/urt/user/baltes/docs/csharp/csharp.htm
Das Dokument enthält weniger Informationen über die C# Netzwerkprogrammierung als die von mir zitierte Quelle.
dasonmos schrieb:
Nur mal so als Ansatz. Vielleicht liegt es auch ganz einfach an deinem Client. Ich würde empfehlen, dass du dir selbst einen schreibst (der natürlich auf einem anderen Port läuft) und einfach mal schaust was passiert. Ich weiß zwar nicht wirklich wie es mit Putty aussieht, aber das verwendet doch SSH und andere Protokolle. Dein Server verwendet aber schleicht und einfach TCP. Das ist eine ganz andere Ebene im OSI-Layer.
Irgendwie hab ich das Gefühl du verstehst das OSI-Modell nicht. Auch PuTTY verwendet natürlich TCP. Praktisch jede Anwendung im Internet nutzt entweder UDP oder TCP als Transportprotokoll für die Daten. Das SSH Protokoll basiert auf der Transportschicht TCP. Das SSH ist ein Protokoll der Anwendungsschicht, was auf Sicherheit ausgelegt ist. Auch das HTTP befindet sich in der Anwendungsschicht und nutzt ebenfalls TCP.
Natürlich kann man sich mit PuTTY zu einem TCP Server geschrieben in C# verbinden. Man muss nur den richtigen Port unter localhost wählen.