Hallo und
,
er nimmt keine Verbindung mehr entgegen, weil du nur einmal auf eine Verbindung wartest. Sprich du müsstest in deiner WorkerThreadFunction eine Schleif um die socket.Accept() bauen, damit er ständig neue Verbindungen annimmt.
Wenn dein Programm abstürzt, wäre die Exception hilfreich. Ich vermute aber sie liegt bei Zeile 42 ... egal...
Generell kannst du dir Arbeit ersparen, wenn du einen TcpListener verwendest. Dieser erstellt auch eine Socket Verbindung. Darüber hinaus erlaubt es dir aber sämtliche Funktionen bequem asynchron aufzurufen, z.B.:
C#-Quelltext
1: 2: 3:
| TcpListener server = new TcpListener(IPAddress.Loopback, this.Port); server.Start(); server.BeginAcceptSocket(new AsyncCallback(AcceptSocket), _listener); |
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| public void AcceptSocket(IAsyncResult result) { TcpListener listener = (TcpListener)result.AsyncState;
Socket client = listener.EndAcceptSocket(result);
_listener.BeginAcceptSocket(new AsyncCallback(AcceptSocket), _listener); } |
Gruß Daniel