LINUX.ORG.RU

getpeerbyname


0

0

Проблема с getpeerbyname:

Слушаю порт, делаю accept, получаю сокет -- все ок, все работает.

getpeerbyname прошу -- все в порядке, возвращает 0, но вместо ИПшника получаю все нули...

★★★★★

Ответ на: комментарий от klalafuda

я когда-то столкнулся с таким в... йавовском сервлете :) мне подумалось, что корни могут быть общие

Pi ★★★★★
()
Ответ на: комментарий от Pi

> я когда-то столкнулся с таким в... йавовском сервлете :) мне подумалось, что корни могут быть общие

в общем нужен подтверждающий код ну и uname -a не помешает.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

getRemoteAddr() у реквеста в сервлете, ну и Darwin McPi.local 8.11.1 Darwin Kernel Version 8.11.1: Wed Oct 10 18:23:28 PDT 2007; root:xnu-792.25.20~1/RELEASE_I386 i386 i386 MacBook2,1 Darwin

Pi ★★★★★
()
Ответ на: комментарий от Pi

> getRemoteAddr() у реквеста в сервлете, ну и Darwin McPi.local 8.11.1 Darwin Kernel Version 8.11.1: Wed Oct 10 18:23:28 PDT 2007; root:xnu-792.25.20~1/RELEASE_I386 i386 i386 MacBook2,1 Darwin

да нет, я вообще то DH имел ввиду, чтобы он привёл пример и параметры. IMHO навряд ли ему поможет аналогичная проблема в JS на дарвине :)

// wbr

klalafuda ★☆☆
()

Блин, извиняюсь за идиотский вопрос...

Не мой код, приятель позвонил и озадачил, а я домой шел. Он обещал код прислать -- ну, прислал... А там ЦеПП, все в вызовах и концов не найти. Завтра его еще расспрошу.

Ситуацию я (с его слов) описАл, но, судя по коду, там все, что угодно может оказаться.

Просто, если кто сталкивался с таким случаем (с моих слов), отзовитесь.

Die-Hard ★★★★★
() автор топика
Ответ на: комментарий от anonymous

и это имеет смысл. 127.0.0.1 - просто адрес интерфейса, которого может и не быть, ровно как и эзернета.

Pi ★★★★★
()
Ответ на: комментарий от Pi

> и это имеет смысл. 127.0.0.1 - просто адрес интерфейса, которого может и не быть, ровно как и эзернета.

ну у меня, к примеру, езернета нет а вот TCP/IP - есть. и адрес 127.0.0.1 то-же есть..

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

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

Pi ★★★★★
()

Спасибо всем ответившим.

Ну, я потом постараюсь пояснить, в чем дело было... :-)

Die-Hard ★★★★★
() автор топика
Ответ на: комментарий от anonymous

> 0.0.0.0 is a synonym for localhost.

нет
0.0.0.0 - это INADDR_ANY
INADDR_ANY понятие несколько более широкое нежели localhost ;)

rei3er
()
Ответ на: комментарий от Pi

INADDR_ANY может описывать адрес любого локального интерфейса
если вызвать sendto() с sockaddr_in = 0.0.0.0, то будет осуществлен поиск сетевого интерфейса с локальным адресом 127.0.0.1, т. е loopback-интерфейса
если его нет, то sendto() завершится с ошибкой
аналогично, если сервер находится на локальном хосте, то recvfrom() возвратит sockaddr_in = 127.0.0.1, а не 0.0.0.0

rei3er
()
Ответ на: комментарий от Pi

> и это имеет смысл. 127.0.0.1 - просто адрес интерфейса, которого может > и не быть, ровно как и эзернета.

тогда соединение в рамках хоста невозможно

rei3er
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.