komisch irgendwie
-
using System; using System.Net; using System.Net.Sockets; namespace Client { class Client { static void Main() { TcpClient socketForServer; try { socketForServer = new TcpClient("localhost", 4711); Console.WriteLine("Verbunden..."); } catch { Console.WriteLine("Verbindungsfehler, der Server ist nicht bereit..."); Console.ReadLine(); return; } //jetzt die Stream Scheiße... NetworkStream networkStream = socketForServer.GetStream(); System.IO.StreamReader streamReader = new System.IO.StreamReader(networkStream); System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(networkStream); try { string outputString; { outputString = streamReader.ReadLine(); Console.WriteLine(outputString); streamWriter.WriteLine("ewrfsdf "); //das wird beim Server angezeigt!!! Console.WriteLine("Client Message: "); streamWriter.Flush(); Console.ReadLine(); } } catch { Console.WriteLine("Fehler beim Lesen des Strings..."); Console.ReadLine(); } networkStream.Close(); } } }
Das ist mein Serverseitiger Code!
Ich habe nur eine kleine Frage, wie kann ich es erreichen, dass der Server immer "zur Verfügung" steht. wenn ein Client verbunden ist, beendet sich der Server ja auch, das will ich aber nciht, denn er soll weiter laufen, falls der Client sich später nochmals verbinden will.Wie geht das?
mfg
-
Musst du Threads benutzen
-
keine andere möglichkeit?
mit ner while schleife oder so?mfg
-
netzwerk schrieb:
keine andere möglichkeit?
mit ner while schleife oder so?mfg
Könntest du machen, aber dann reagiert dein Programm gar net mehr weil er nur in der Schleife hängt
Les dich lieber in Threads ein, so schwer sind die nicht zu handhaben.
-
ok danke tala!
ich habe ein buch zuhause, da werden die Threats ganz schlecht erklärt..
kannst du mir n tutorial oder einen Link empfehlen?MFG
-
-
using System; using System.Threading; namespace MyConsoleThread { class MyThread { public static int i=0; static void Main(string[] args) { Thread[] ta = new Thread[100]; // Thread-Array for (int j = 0; j<100; j++) { ta[j] = new Thread(new ThreadStart(tuwas)); // Threads werden erzeugt ta[j].Start(); // Threads werden gestartet } System.Console.ReadLine(); } public static void tuwas() { //HIER KOMMT DANN MEINER GANZER SERVER CODE REIN???? } } }
Also kann ich, wo ich den Kommentar gemacht habe, meinen Servercode reinkopieren? Bedeutet das dann, dass der Server 100 Connections entgegennehmen kann?
mfg
-
Bitte tu das nicht mit 100 Threads
Das Beispiel ist net so geeignet. Besser ist nen ThreadPool zu verwenden - aber das ist nen fortgeschrittenes Thema. Am Anfang reicht auch ein einfacher Thread aus, mehr als eine Connection kannst du ja im Moment auch nicht annehmen. Dadurch bekommst du es jedenfalls hin, das dein Programm beim warten auf eine Connection nicht blockiert.