Вот описание на английском:
WSAECONNREFUSED (10061) Connection refused.
Berkeley description: No connection could be made because the target machine actively refused it. This usually results from trying to connect to a service that is inactive on the foreign host.
WinSock description: Same as Berkeley
TCP/IP scenario: In TCP terms (datastream sockets), it means an attempt to connect (by sending a TCP SYN packet) caused the destination host to respond to the host by returning a reset (a TCP RST packet). If an application sends a UDP packet to a host/port that does not have a datagram socket "listening," the network system may respond by sending back an ICMP Port Unreachable packet
User suggestions: Either you went to the wrong host, or the server application you're trying to contact isn't executing. Check the destination address you are using. If you used a hostname, did it resolve to the correct address? If the hostname resolution uses a local hosttable, it's possible you resolved to an old obsolete address. It's also possible that the local services file has an incorrect port number (although it's unlikely).
You can verify that the remote system is rejecting your connection attempt by checking the network statistics locally. Check that your network system (WinSock implementation) has a utility that shows network statistics. You could use this to verify that you're receiving TCP resets or ICMP Port Unreachable packets each time you attempt to connect.
Developer suggestions: If you have a network analyzer available, you can quickly check if the destination port number and host address are what you expect. On the server end, you could use a network system utility similar to BSD's "netstat -a" command to check that your server is running, and listening on the right port number.
This is one of the most frequent errors and one of the best to encounter, since it's one of the least ambiguous. There are only a few possible causes for this error:
you tried to connect to the wrong port. This is a common problem. You need to call htons() to translate a constant value to network byte order before assigning it to the sin_port field in the sockaddr structure.
you tried to connect to the wrong destination host address
the server application isn't running on the destination host
the server application isn't listening on the right port. The server application might need to call htons() to translate the port to network byte order in the sockaddr structure.
WinSock functions: With a datastream socket: connect() and FD_CONNECT WSAAsyncelect() notification message.
Additional functions: With a datagram socket: send() or sendto(), or FD_READ.
А вот кривой перевод на русский:
WSAECONNREFUSED СОЕДИНЕНИЕ (10061) отказывалось.
Описание Berkeley: Никакое соединение не могло бы быть сделано поскольку целевая машина активно отказалась этому. Это обычно результаты из попытки подключать к услуге, которая неактивной на иностранном хозяине.
WinSock ОПИСАНИЕ: Также, как Berkeley
TCP/IP СЦЕНАРИЙ: В условиях TCP (datastream розетки), он означает попытку соединять (посылая пакет TCP SYN) заставил хозяина расположения ответить на хозяина возвращая сброс ( пакет TCP RST). Если приложение посылает пакет UDP хозяину/порту, который не имеет розетку дейтаграммы "слушание," сетевая система может ответить возвращая ICMP Порт пакета Unreachable
Предложения Потребителя: Также Вы шли к неправильному хозяину, или приложение сервера, которое Вы пытаетесь обратиться к не выполняется. Проверьте адрес расположения, который Вы используете. Если Вы использовали hostname, он решался в правильном адресе? Если hostname решение использует локальный главный, возможно Вы решались в старом устаревшем адресе. Также возможно, чтобы локальный файл услуг имел неправильный номер порта (хотя он вряд ли).
Вы можете проверить, который дистанционная система отвергает вашу попытку соединения проверяя сетевую статистику локально. Чек, что ваша сетевая система (WinSock реализация) имеет утилиту, которая показывает сети статистику. Вы могли бы использовать это, чтобы проверить, который Вы получаете TCP сбрасывает или ICMP Порт пакетов Unreachable всякий раз, когда Вы пытаетесь соединяться.
Предложения Разработчика: Если у вас есть доступный сетевой анализатор, Вы можете быстро провериться если номер порта расположения и главный адрес - что Вы ожидаетесь. В конце сервера, Вы могли бы использовать сетевую системную утилиту подобную BSD "netstat -" команда, чтобы проверить, который ваш сервер выполняет, и слушать в правом номере порта.
Это - одна из наиболее распространенных ошибок и одного из наилучшего, чтобы встретить, поскольку это - одно из наименее неоднозначным. Есть только некоторый возможные причины для этой ошибки:
Вы попытались подключить к неправильному порту. Это - общая проблема. Вам нужно называть htons(), чтобы перевести постоянную величину в сетевой байтовый заказ прежде, чем назначить это в области sin_port в sockaddr структуре.
Вы попытались подключить к неправильному хозяину расположения адресовать приложение сервера не работает на хозяине расположения
приложение сервера не слушает в правом порте. Приложение сервера, вероятно, должно назвать htons(), чтобы перевести порт в сетевой байтовый заказ в sockaddr структуре.
WinSock ФУНКЦИИ: С datastream розеткой: соедините() и FD_CONNECT WSAAsyncelect сообщение уведомления().
Дополнительные функции: С розеткой дейтаграммы: пошлите() или sendto(), или FD_READ.
Ответить
|