Посылка данных в порт
Модератор: Модераторы
Дык я и добавлял туда ip и вместо него 127.0.0.1 записывал, а всё равно получаю 127.0.0.1.
- Attid
- долгожитель
- Сообщения: 2589
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
вместо не надо. надо рядом
Добавлено спустя 18 минут 15 секунд:
а хотя зачем тебе локальный ИП ? у меня например их много
какой из них ты хочешь получить ? и что это тебе даст ?
Код: Выделить всё
127.0.0.1 localhost.localdomain localhost
192.168.1.1 www.mydomain.org mydomain
Добавлено спустя 18 минут 15 секунд:
а хотя зачем тебе локальный ИП ? у меня например их много
Код: Выделить всё
ifconfig | grep addr:
inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Диапазон:Узел
inet addr:192.168.0.44 P-t-P:192.168.7.201 Mask:255.255.255.255
inet addr:192.168.2.44 P-t-P:192.168.15.1 Mask:255.255.255.255
inet addr:10.25.2.101 P-t-P:192.168.15.1 Mask:255.255.255.255
inet addr:10.86.2.153 P-t-P:10.86.2.150 Mask:255.255.255.255
inet6 addr: fe80::213:d4ff:fed1:3fd0/64 Диапазон:Ссылка
какой из них ты хочешь получить ? и что это тебе даст ?
Ну допустим у меня на компе 2 проги обмениваются данными через сокеты, одна сервер другая клиент. Если ip динамический и произошло переподключение , то нужно соответственно сервер на новом ip создать и чтобы клиент на новый ip стучался. Поэтому на сервере нужно всё время проверять не изменился ли ip и перебиндить сокет если что. А клиент получая когда коннектится тоже новый ip использует. Ну что-то типо того=)))
Я пробывал в хостс и рядом писать новый ip. Только не помогло. Видно что то не так пишу.
А если ip внешний, то эта функция вернет его? Или опять 127.0.0.1 ?
И что за ifconfig?
Я пробывал в хостс и рядом писать новый ip. Только не помогло. Видно что то не так пишу.
А если ip внешний, то эта функция вернет его? Или опять 127.0.0.1 ?
И что за ifconfig?
dionic писал(а):Ну допустим у меня на компе 2 проги обмениваются данными через сокеты, одна сервер другая клиент.
Если на одном компе, так зачем нужно знать внешний ip? 127.0.0.1 не работает?
Да ,конечно, работает , а вот с другого компа потом как коннектится к серверу на этом?
а как другой комп узнает новый ip первого?
только через DNS или WINS.
Добавлено спустя 12 минут 32 секунды:
т.е. по имени первого компа
только через DNS или WINS.
Добавлено спустя 12 минут 32 секунды:
т.е. по имени первого компа
Ну что то типо того. 
Mr.Smart писал(а):dionic
Смотри пример из Synapse demo\httpserv
Обнаружилась такая вот инетересная вещь. В проекте demo\httpserv при соединении с сервером создается новый экземпляр класс TTCPBlockSocket, и его свойству Socket присваивается значение, полученное с помощью функции Accept сервера. После чего обмен данными можно вести с клиентом через этот новый экземпляр класса.
А вот если передать значение , полученное с помощью функции Accept сервера, другому приложению и присвоить его свойству Socket нового экземпляра класса TTCPBlockSocket, то обмен данными не происходит, так как не восстанавливаются определённые структуры (для определения локального адреса и удаленного). Возникает собственно вопрос как быть?
Возможно ли писать прям в порт на котором было осуществлено соединение сервером (ну т.е. который он слушает)?
Народ у кого есть какие мысли поделитесь плиз...
dionic
Есть только одна мысль! Зачем так извращаться?
Я не очень понимаю, что у вас за задача. И предполагаю, что вы неправильно продумываете алгоритм решения этой задачи.
Есть только одна мысль! Зачем так извращаться?
Я не очень понимаю, что у вас за задача. И предполагаю, что вы неправильно продумываете алгоритм решения этой задачи.
Ладно попробую объяснить зачем всё так сложно.
У меня имеется программа для снятия показаний со счетчиков э/э. Счетчики могут быть либо локально подсоединены прямо к УСПД (пром. комп по RS-232) или удалённо через коммуникатор. Так вот локально всё работает на ура. Да и удаленно тоже при некоторых условиях.
Хочется просто выделить ту часть логиги , которая предоставляет подсоединение к коммуникатору в отдельную программу.(коммуникатор может только сам коннектится , т.е. на компе необходимо создать сервер для прослушки порта).
Предполагалось так, программа коммутирующая коммуникатор может по запросу из основной программы сборщика , приконнектить комуникатор на определенный порт и передать номер сокета. А в основной программе с новым экземпляром класс TTCPBlockSocket можно было передавать данные по этому сокету.
Так просто разделяются функции коннекта и сбора данных в разные программы, и если изменится способ коннекта коммуникатора (например можно будет к коммуникатору самому коннектится, а не ждать пока он это сделает), то необходимо будет допилить только одну маленькую программу (так сказать модуль системы) , а не лезть в основную по сбору данных.
Ну в общем примерно так=). Может , конечно, я и не правильно что-то делаю, просто начальство хочет больше модульности...А я извращаюсь...
Mr.Smart если есть какие-нибудь мысли по поводу того как работать именно с портом на котором создаешь сокет или как передать значение свойства Socket в другую программу , а там восстановить передачу данных , поделитесь плиз
