Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Asynchronous Socket Error 10049


Автор: lord_nikon 10.2.2005, 22:13
Есть Сервер и по его адресу(192,168,0,85) на порт 4000 коннектим клиента, сразу вылетает ошибка 10049...
Что это за ошибка такая и как это лечится? smile
Заранее спасибо.

Автор: _hunter 10.2.2005, 22:30
а с той стороны кто-то есть?

Автор: lord_nikon 11.2.2005, 12:48
Немного не понял, "кто-то"?
В общем, на той стороне:
Сервер с ServerSocket [Port=4000, Addr=192.168.0.85], на нем висит БД (MDB Access). Клиент посылает запросы, а Сервер принимает, обрабатывает и отсылает ответ (это изначальная задумка).
Вот только клиент никак не коннектится (вылетает с ошибкой) smile, и Сервер не регистрирует подключения (по умолчанию сделал, что бы он вел логи smile - там пусто-коннектов нет).
И еще, что самое интересное, раньше работал, но после "незначительных" изменений (поменял label.caption'ы итп - перестал.

Автор: Snowy 11.2.2005, 13:02
Цитата
10049 Невозможно использовать запрошенный адрес для привязки в порту

Попробуй просто обычным телнетом подключиться.
Проверь, пингуется ли сервер, не мешают ли файрволы и т.п.

Что за ошибка 10049:
Цитата
WinSock Error Descriptions
WSAEADDRNOTAVAIL (10049) Cannot assign requested address.
Berkeley description: Normally results from an attempt to create a socket with an address not on this machine.
WinSock description: Partly the same as Berkeley. The "address" it refers to is the remote socket name (protocol, port and address). This error occurs when the sin_port value is zero in a sockaddr_in structure for connect() or sendto().
In Berkeley, this error also occurs when you are trying to name the local socket (assign local address and port number) with bind(), but Windows Sockets doesn't ascribe this error to bind(), for some unknown reason.
Developer suggestions: Assume bind() will fail with this error. Let the network system assign the default local IP address by referencing INADDR_ANY in the sin_addr field of a sockaddr_in structure input to bind(). Alternately, you can get the local IP address by calling gethostname() followed by gethostbyname().


спроси у яндеска "Socket error 10049".

Автор: lord_nikon 20.2.2005, 12:29
Все проверил, другими средствАми все пингуеться, даже телнет подключился - сервер его правильно воспринял и начал получать от телнета команды... вот только мой самописный клиент - не хочет... Файрволов в системе нет, пробовал под разными виндами....

Автор: RA 20.2.2005, 13:38
Это ты сам устанавливаешь true в ClientSocket.active ?

Автор: Snowy 21.2.2005, 09:50
Значит показывай кусок кода, который коннектится и параметры сокетклиента.
Ошибка скорее всего именно в коде.

Автор: lord_nikon 22.12.2009, 21:14
Вопрос решился сам собой. В одном месте программы - блок настроек(  где я сохранял их в файл, в том числе и адрес) практически случайно сбивал адрес назначения на ложный, соответственно клиент не мог найти сервера по неверному адресу... 
Всем огромное спасибо за участие и помощь!!!

Автор: dumb 22.12.2009, 23:06
Цитата(lord_nikon @  22.12.2009,  21:14 Найти цитируемый пост)
Вопрос решился сам собой.
остается только позавидовать такой оперативности в решении проблем. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)