Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 6

Не передает данные

18.04.2014, 12:20. Показов 1122. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня настроен роутер с пробросом порта на мой компьютер. Ситуация следующая когда ко мне подключается терминал (используется gprs) то в sin_addr возвращает ip адрес роутера. Как сделать чтобы получить реальный ip адрес. Из-за этого у меня данные вместо того чтобы уходит на терминал уходят на роутер. Возможно, что то не внятно написал) но если что спрашивайте я уточню.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
void * exchangeData(void * param)
{
    ThreadParam * tp ;
    tp = (ThreadParam *) param;
...
    SOCKET __socket = *tp->soc;
...
    while ((msg = recv(__socket, &buff[0], 1, 0)) && msg != SOCKET_ERROR)
    {
       ... /*обработка данных*/
    }
    closesocket(__socket);
    return 0;
}
 
 
void network::acceptClient(argument * __arg)
{
    struct sockaddr_in __address;
    int __sizeofaddr = sizeof(__address);
    SOCKET __socketClient = 0;
 
    while (__socketClient = accept(network::_socket, (sockaddr *)&__address, &__sizeofaddr))
    {
        
        std::cout << "SERVER : Connect " << inet_ntoa(__address.sin_addr) << std::endl;
 
        pthread_t __thID;
        ThreadParam * tmp = new ThreadParam;
        tmp->arg = __arg;
        tmp->soc = &__socketClient;
        pthread_create(&__thID,NULL,exchangeData, tmp);
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.04.2014, 12:20
Ответы с готовыми решениями:

Не передаёт данные
Здравствуйте. Возникла небольшая проблема, связанная с сетевым программированием. Написала клиентскую и серверную часть. И вроде бы и не...

Сессия не передаёт данные
Подскажите пожалуйста новичку! Есть главная страница index.php которая инклудит tetsreg.php Вот код tetsreg.php &lt;?php # Данные о...

Криво передает данные
При нажатии на button необходимо передать знаение ID из таблицы в Edit на другую форму. Он передает но со второго раза с начала он пишет то...

13
204 / 205 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
18.04.2014, 21:44
Правильно возвращает. Проброс портов в данном случае это просто прогон трафика от внешнего клиента к твоему внутреннему серверу и обратно. Тот клиент, который подключается к твоему роутеру и знать не знает про твой внутренний IP и сервер. Так что, если роутер обратно не отсылает смотри его настройки, либо смотри свой код на предмет жуков.
0
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
19.04.2014, 15:12
villu Неправда, выходной трафик за NAT это не тоже самое, что входной, и вообще не тоже что и IP отправителя.

ruha02 По моему мнению, такая ситуация может произойти если роутер использует фильтр пакетов. В этом случае он будет выступать дополнительным звеном S(router in) - C (router out) - S(your in).
0
204 / 205 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
19.04.2014, 15:46
причем тут NAT? Редирект портов это открытй на роутере сервер, который принимает соединения и все данные с них шлет на сервер внутри сети. У меня такой же роутер валяется, который делает то же самое. Такой "NAT" пишется на коленке за 15 минут.
0
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
19.04.2014, 16:43
Вы понимаете, что был за вопрос? У топикстартера, accept возвращает sin_addr с ip роутера, на что Вы отвечаете
Цитата Сообщение от villu Посмотреть сообщение
Так что, если роутер обратно не отсылает смотри его настройки, либо смотри свой код на предмет жуков.
Но на самом деле, то выясняется, что роутер всего лишь "лишняя" цепочка SCS, и accpet правильно возвращает
Цитата Сообщение от villu Посмотреть сообщение
роутере сервер, который принимает соединения и все данные с них шлет на сервер внутри сети
Теперь сопоставьте мой ответ, Ваши два, и вопрос топик стартера.
0
204 / 205 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
19.04.2014, 17:39
Вы понимаете, что был за вопрос? У топикстартера, accept возвращает sin_addr с ip роутера, на что Вы отвечаете
на что я отвечаю, что возвращает он правильно, и реальный адрес внешнего клиента ему не нужен, не? И если данные "не уходят" то надо смотреть код. Либо спросить у ТС, как он понял, что они "не уходят".
0
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 6
21.04.2014, 12:09  [ТС]
так мне в итоге где копать? в коде или в роутере? Если настрою проброс скажем на ssh и будет работать то тогда в коде рыть?
0
204 / 205 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
21.04.2014, 19:17
А что у тебя за терминал на той стороне? и почему ты думаешь, что данных он не получает? Может он чего специального ждет?
0
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 6
22.04.2014, 08:04  [ТС]
терминал galileosky у них имеется утилита которая проводит диагностику gprs и в нем указано, что соединения нет. пробовал на их сервер настроить терминал все нормально проходит.
0
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 6
24.04.2014, 14:22  [ТС]
народ. так что мне делать? роутер проброс сделал для ssh все норм. получается ошибка в коде? где искать?
0
204 / 205 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
24.04.2014, 21:48
Ну, видимо, да. Смотри что тебе приходит. Может по дороге ошибка возникает, либо терминал ждет чего от тебя, а ты не передаешь. попробуй, если есть возможность, прицепиться извне каким-нибудь телнетом.
0
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 6
25.04.2014, 13:15  [ТС]
вот именно что терминал ждет от меня контрольную сумму а посылать ее не куда, ip адреса терминала нет) т.е. посылается она на роутер и все. в итоге терминал считает что не получил контрольную сумму и посылает опять пакет
0
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
25.04.2014, 13:53
Вы сами отвечаете на свой вопрос, Вам нужен реальный ip Вашего собеседника,

Как именно получить его получить? Есть много решений, но нужно больше информации, что за терминал, еть ли возможность модификации/расширения его логики, есть ли возможность замены типа форвардинга портов или вообще роутеров, может вообще решать проблему статическим ip?
0
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 6
25.04.2014, 15:03  [ТС]
Терминал galileosky GPS 5.0
Модифицировать терминал не возможно.
Вот про форвадинг портов подробнее? что за типы? у меня zyxel kenectic. На нем статический айпи при подключению к провайдеру.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.04.2014, 15:03
Помогаю со студенческими работами здесь

Не передает данные из БД и вообще
http://tofrom-fromto.p.ht/index.php - вот мой &quot;сайт&quot;. Необращая внимания на неправильную кодировку, я прошу заметить, что там отображается...

$_GET не передает данные
Добрый день! Обращаюсь с элементарным, должно быть, вопросом. Но я новый человек в этом деле, поэтому не судите строго. По курсу Попова...

Регистрация на сайте: не передает данные
Придумал сайт, но не знаю как сделать регистрацию с одним полем &lt;имя&gt; и входом?

Ajax форма не передает данные
Здравствуйте. Совсем не дружу пока что с JS. Вот есть форма и ajax запрос &lt;script...

Форма передает пустые данные
Здравствуйте, появилась проблема, есть форма обратной связи но данные передает пустыми , форма не моя помогите пожалуйста разобраться ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru