Если вы собираетесь использовать TCP-сокеты, то вы должны создать один сокет слушателя (т.е. создать сокет, привязать его к определенному порту и вызвать для него Listen ()). Затем, когда вы принимаете соединение и получаете другой сокет, который вы используете для приема / отправки данных от / к клиенту:
Socket socketListener;
// create listening socket
socketListener = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
IPEndPoint ipLocal = new IPEndPoint(IPAddress.Any, 30120); // use port 30120
//bind to local IP Address.
socketListener.Bind(ipLocal);
//start listening
socketListener.Listen(4);
while (true) // loop that accepts client connections
{
Socket socketWorker = socketListener.Accept();
HandleClientConnection(socketWorker); // your routine where you communicate with a client
}
Кроме того, рассмотрите возможность использования сокетов в асинхронном режиме, который будет более эффективным с точки зрения производительности.