Перейти к содержанию
    

Нет. bind дает вашему локальному сокету адрес. При приеме (когда сокет серверный) именно к этому адресу должны будут присоединяться клиенты (или посылать на него пакеты - например для UDP сокетов). Адрес однозначно определяет в какой сети находится ваш сервер. Система не даст присвоить IP сокету из другой сети.

При передаче все проще - система сама даст адрес сокету, если вы его не присвоили явно через bind. IP будет взято из вашей сети (если сетей несколько, то одно из них - система выберет). Если вы пытаетесь присоединится к адресу не из вашей сети, то пакет будет отправлен в gateway (ну или туда, куда отруководит таблица роутинга).

Если IP назначения принадлежит одной из ваших сетей - пакет будет отправлен напрямую на сервер с локального сокета, который получит адрес в этой самой сети (ну или если он уже имел такой адрес)

у меня IP = 10.0.0.10 а я делаю bind на 192.168.3.10 - поэтому я получаю ошибку на bind?

 

но в этом идея - развести сокеты по разным IP.

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

. . .

тут возникает другой вопрос. допустим сконфигурировал

//FIRST IP;
ifAddrSet ("ETH0","10.0.0.10");           [b]IP для интерфейса, он "видится" маршрутизатором извне[/b]
ifMaskSet ("ETH0", 0xffffff00);             [b]маска. Отсюда видим, что для девайса выделена "минимальная" сеть на 254 (кажется) адреса[/b]
//SECOND IP
ifAddrAdd ("ETH0","192.168.101.100","192.168.101.255",0xffffff00);     [b] (!) А вот тут я не уверен. Диапазон адресов из другой сети [/b]?

. . . .

Отсюда может быть и ошибка.

 

ps

Может виртуальный интерфейс (второй)

sudo gedit /etc/network/interfaces
И редактируешь его приводя к следующему виду:
auto eth0
iface eth0 inet static
  address 192.168.1.5
  netmask 255.255.255.0
  network 192.168.1.0
  broadcast 192.168.1.255
  gateway 192.168.1.1
  dns-nameservers 8.8.8.8 192.168.1.1

auto eth0:1
iface eth0:1 inet static
  address 192.168.0.5
  netmask 255.255.255.0
  network 192.168.1.0
  broadcast 192.168.1.255
  gateway 192.168.0.1
  hwaddress ether 00269ebba619 --------------------- это похоже на "виртуальный" MAC
  dns-nameservers 8.8.8.8 192.168.1.1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет. bind дает вашему локальному сокету адрес.
Тогда уж пару адрес-порт, если вы хотите, чтобы при send/sendto у вас source port был определенный. Только для передачи по UDP сокет биндить необязательно, в случае stream протокола "обратка" пойдет по установленному исходящему соединению.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Продолжаю серию дурацких вопросов.

У меня NFS-сервер. Я должен положить в NFS-папку линковочный файл (symbolic link) а NFS клиент открыв его перенаправиться к файлу указанному в symbolic link.

Такое возможно? Или клиент может видеть только свою NFS-папку?

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Такое возможно?
Переход по символической ссылке? Возможен конечно.

Или клиент может видеть только свою NFS-папку?
Клиент увидит строку с символической ссылкой и перейдет по нет (на клиенте). Куда она будет смотреть - это будет определять клиент. NFS сервер к этому отношения не имеет

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Переход по символической ссылке? Возможен конечно.

Клиент увидит строку с символической ссылкой и перейдет по нет (на клиенте). Куда она будет смотреть - это будет определять клиент. NFS сервер к этому отношения не имеет

в смысле на клиенте?

я создаю папку на сервере - mkdir("/ram0/NFS_FILES"); а линк указывает на "/ram0/some_file.txt/'' - клиент видит всю файловую систему? я так понимаю у клиента мапиться только эта папка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я создаю папку на сервере - mkdir("/ram0/NFS_FILES"); а линк указывает на "/ram0/some_file.txt/'' - клиент видит всю файловую систему?
Клиент уыидит файл /ram0/some_file.txt (если такой на клиенте есть), или битую ссылку, если нет. Файл /ram0/some_file.txt с сервера он (клиент) НЕ увидит ни при каком раскладе.

я так понимаю у клиента мапиться только эта папка.
Разумеется

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Клиент уыидит файл /ram0/some_file.txt (если такой на клиенте есть), или битую ссылку, если нет. Файл /ram0/some_file.txt с сервера он (клиент) НЕ увидит ни при каком раскладе.

Разумеется

Я понял. спасибо. эти фантазеры хотят чтоб я слинковал их на файл на сервере.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...