Ich versuche anhand des Tutorials einen kleinen Chatserver und einen Chatclient zu erstellen. Jedoch bekomme ich an der Stelle Probleme, wo die Socketverbindung an das Objekt serverInstance übergeben wird und dann in einer Collection gespeichert wird.
Bei mir führt das Übergeben an die ArrayList zu einem Verbindungsfehler.
private void Listen()
{
TcpListener L = new TcpListener(this.mIpAddress, this.mPort);
try
{
L.Start();
while (!L.Pending())
Thread.Sleep(100);
Client C = new Client(L.AcceptSocket());
this.mClients.Add(C);
this.OnSendMessage("Console: Client connected, IP: " + C.Connection.Socket.RemoteEndPoint + ", Port: " + ((IPEndPoint)C.Connection.Socket.LocalEndPoint).Port.ToString());
}
catch (Exception e)
{
throw new Exception("Fehler bei Verbindungserkennung", e);
}
Meine ArrayList heißt mClients und beim Übergeben des Objekts Client (C) wird der Fehler ausgelöst der unten geworfen wird. Ohne die Collection funktioniert es wunderbar.
Hier noch die Client und Connection Klasse.
// Client
class Client
{
private Connection mConnection;
public Connection Connection
{
get { return this.mConnection; }
}
public Client(Socket pSocket)
{
this.mConnection = new Connection(pSocket);
}
}
// Connection
class Connection
{
private Socket mSocket;
public Socket Socket
{
get { return this.mSocket; }
}
public Connection(Socket pSocket)
{
this.mSocket = pSocket;
}
}
Gruß Thomas
€: Ich habe den Fehler gefunden. Ich habe vergessen die ArrayList zu initialisieren...Schade, dass die Exception die eigentliche Fehlermeldung auf einen fehlenden Objektverweis überspielt.
Gruß Thomas