Witam Forumowiczów.
Tworzę serwer TCP w języku C#. W sieci znalazłem następujący kod:
using System;
using System.Text;
using System.Net.Sockets;
using System.Threading;
using System.Net;
namespace TCPServerTutorial
{
class Server
{
private TcpListener tcpListener;
private Thread listenThread;
public Server()
{
this.tcpListener = new TcpListener(IPAddress.Any, 3000);
this.listenThread = new Thread(new ThreadStart(ListenForClients));
this.listenThread.Start();
}
}
}
private void ListenForClients()
{
this.tcpListener.Start();
while (true)
{
//blocks until a client has connected to the server
TcpClient client = this.tcpListener.AcceptTcpClient();
//create a thread to handle communication
//with connected client
Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClientComm));
clientThread.Start(client);
}
}
Zadaniem serwera jest komunikacja z aplikacjami klienckimi napisanymi w Delphi (zewnętrzny dostawca) na zasadzie jedna instancja aplikacji w Delphi = jeden klient serwera TCP. Aplikacje komunikują się ze sobą, jednak w momencie rozpoczęcia komunikacji z pięcioma klientami liczba klientów widzianych przez serwer wzrasta lawinowo. log serwera pokazuje coraz to więcej podłączonych klientów. Ma ktoś jakiś pomysł, co jest nie tak?? :(