Guten Abend,
ich hoffe ihr könnt mir helfen. Ich möchte ein System schreiben welches über TCP-Verbindungen Nachrichten versenden kann. Ich habe dafür einen Server über den die Nachrichten dann an die Clients verschickt werden sollen. Das Problem momentan ist aber das an den Server keine Nachrichten verschickt werden. Ich denke das Problem liegt daran, das der Server, sobald er bemerkt das sich ein Client verbinden will, diese Verbindung akzeptiert und dann sofort wieder auf eine neue Verbindung wartet. Ich muss aber dazu sagen, dass das Warten auf Nachrichten des Clients auf einem anderen Thread ausgeführt wird.
Ich hoffe ihr könnt mir bei meinem Problem helfen. Ich würde mich über eure Hilfe freuen. Danke schon mal im voraus.
Code:
using System;
using System.Threading;
using System.IO;
using System.Net;
using System.Net.Sockets;
namespace Messages_Server
{
class Client
{
public string name;
public TcpClient client;
public BinaryReader reader;
public BinaryWriter writer;
}
class Program
{
static Client[] person = new Client[5];
static int index = 0;
static void Main(string[] args)
{
TcpListener listener = new TcpListener(IPAddress.Parse("127.0.0.1"), 8000);
listener.Start();
while (true)
{
Console.WriteLine("Warte auf eingehende Verbindungen ...");
try
{
person[index] = new Client();
person[index].client = listener.AcceptTcpClient();
Console.WriteLine("Eingehende Verbindung ...");
NetworkStream stream = person[index].client.GetStream();
person[index].reader = new BinaryReader(stream);
person[index].writer = new BinaryWriter(stream);
person[index].name = person[index].reader.ReadString();
Console.WriteLine("Verbindung erfolgreich.");
if (index == 0)
{
Thread clientMessages = new Thread(getClientMessages);
}
index++;
}
catch (Exception err)
{
Console.WriteLine(err.ToString());
}
}
}
static void getClientMessages()
{
while (true)
{
Console.WriteLine(person[0].reader.ReadString());
}
}
}
}
Mit freundlichen Grüßen
Darklight
Das erste was mir auffällt ist, dass du deinen clientMessages-Thread nicht startest.
Darth Maim
Wie konnte ich nur so doof sein und diesen Fehler nicht entdecken 8o
Nun funktioniert alles problemlos.
Ich danke dir Darth Maim.
Normalerweise sind mir Rechtschreibfehler/Tippfehler relativ egal, aber Darth Mami ist nun schon ein bisschen, ähhm, falsch 😄
Merkwürdig, denn ich habe den Namen eigentlich kopiert und eingefügt 😄
Schuld daran war die Autokorrektur 😃
Tut mir leid.
Grüße
Darklight