На мой winsock сервер нет коннекта с инета?

Тема в разделе "WASM.NETWORKS", создана пользователем 9ine, 21 сен 2004.

  1. 9ine

    9ine New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    24
    Адрес:
    Russia
    Я сижу в инете у одного провайдера. мой IP a.b.c.d при выходе в нет например (хотя smtp cерверы говорят что у меня другой IP f,g,h,i когда им helo говориш? причем этот f,g,h,i постоянный, меняются динамически только c.d в моем gethostbyname() адрессе).

    Делаю обычный bind() на IN_ADDRANY и listen на какойто порт (сервер готов). Сам я на него со своего компа зайти могу, а друг мой (коннектится в нет через другого провайдера) я ему даю свой IP a.b.c.d и он не может на него зайти? в чем проблема?
     
  2. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Это называется динамический IP. Раз smtp дают другой адрес - значит у провайдера стоит firewall или NAT.

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

    Ты должен договорится с админом сервера, чтобы там делалась переадресация портов сервера. В любом случае

    твой друг должен будет задавать для связи

    адрес f.g.h.i - просто сейчас система знает

    только про твои клиентские порты и переадресует их,

    а про серверные надо ей статически задавать !
     
  3. 9ine

    9ine New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    24
    Адрес:
    Russia
    Но через ftf например, подключаюсь к серверу, для канала передачи данных открываю порт xx на своем IP a.b.c.d начинаю его слушать и говорю ftf серверу что "port a,b,c,d,x,x" он мне говорит все +OK и передает запрошенные данные на этот порт?



    Пример:

    clnt: port a,b,c,d,15,160 //port 4000

    serv: 200 OK

    //начинаю слушать у себя port 4000

    clnt: list

    serv: //посылает мне данные я их читаю с порта 4000

    В логах фаервола:

    openinbound ftf.serverIP a,b,c,d 20 5001

    close ftf.serverIP a,b,c,d 20 5001



    как он подключился к порту 5001 я то слушал 4000 и на него получал данные и TcpTable давала что у меня 4000 открыт (хоть какой порт открываю для ftf сервера в логе только 5001,5002, и т.д.). Причем после первой же команды и передачи даныых мне на порт "4000" последующие не дают никакого результата? делаю например после list retr filename ftf мне что адрес уже in use и все дальше от него ни слова ни на любую команду а в логе фаервола его droped пакеты с его порта 20 на порты 5002? Ладно пытаюсь у себя открыть порты 5001 и 5002 чтобы их слушать, хрен sock error Address already in use! но TcpTable говорит что у меня нет таких открытых портов (всегда есть открытый порт 5000 (я его не открывал))?

    Что это за адресация такая?