Я создал программу сокета службы Windows, чтобы подключиться к определенному порту и принять запрос клиента. Работает нормально.
protected override void OnStart(string[] args)
{
//Lisetns only on port 8030
IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Any, 8030);
//Defines the kind of socket we want :TCP
Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//Bind the socket to the local end point(associate the socket to localendpoint)
serverSocket.Bind(ipEndPoint);
//listen for incoming connection attempt
// Start listening, only allow 10 connection to queue at the same time
serverSocket.Listen(10);
Socket handler = serverSocket.Accept();
}
Но мне нужна служебная программа для прослушивания нескольких портов и принятия запроса клиента на любом доступном порту.
Итак, я улучшил привязку приложения к порту 0 (ноль), чтобы оно могло принимать запрос на любом доступном порту.
Но тогда я получил ошибку 10061
No connection could be made because the target machine actively refused it.
Я не могу знать, в чем причина этой ошибки.
Может ли кто-нибудь предложить способ усовершенствования кода для принятия запроса на любом порту.
Но клиенту необходимо отправить запрос на подключение к определенному порту. например, client1 должен подключиться к port 8030
, client2 должен подключиться к port 8031
.