| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > сокет, коннект, еррор 10061 |
| Автор: Cashey 6.5.2008, 12:34 | ||||
пытаюсь послать сообщение через сокет. делаю так:
если Addr.sin_addr.S_addr присваивается значение '127.0.0.1', то работает, но если подставляю всесто него IP адрес машины в локальной сети, то и при запуске на этой машине, и при запуске с другой возвращается ошибка 10061. пытался сделать по другому:
та же самая ошибка, но уже и с локальным IP. Используется Delphi 6. Ну и логичный вопрос - что делать? |
| Автор: ama_kid 6.5.2008, 13:13 |
| Cashey, если ты имеешь ввиду то, о чем мы вчера разговаривали - то я тут сообразил щас, что в контексте той задачи, которую ты описывал, ситуация должна быть немного иной: "серверный" сокет должен поднимать клиент, а сервер - должен открывать соединение и подсоединяться к нему (т.е. наоборот по отношению к тому, как я тебе показывал пример). Попробуй сделать так, если что - я через пару часов освобожусь и попробую помочь... |
| Автор: Cashey 6.5.2008, 13:32 |
| ama_kid, да, это как раз развитие вчерашней темы. твой вчерашний пример работает на одной машине, но если серверную часть перенести на другой комп и поменять IP адрес, то вылетает ошибка 10061. или даже если на одной машине смотреть, то все равно если IP не локальный, а сетевой то выдает ошибку. |
| Автор: Cashey 6.5.2008, 14:00 | ||||
я так понимаю.... та часть, что стоит у клиента должна опрашивать свой локальный порт, т.е. для нее будет верно
а вот та часть, которая должна послать сообщение клиентской должна стучатся по ее сетевому адресу, т.е. как я и написал
а дальше я так понял надо поменять местами Bind() и Listen() с connect() так? |
| Автор: ama_kid 6.5.2008, 14:12 |
| Cashey, тьфу, я уже загнался В общем, щас посмотрел, что я тебе вчера написал в том примере - оказывается все правильно. Ключевой момент в том, что клиент - должен сажаться на свой собственный реальный IP-адрес (не 127.0.0.1, а тот, который имеет в сети). А сервер должен на этот адрес слать данные... Только что проверил у себя на виртуальной машине - все заработало... |