Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TServer/ClientSocket, проблема коннекта к серверу, локальная сеть, не определяется IP.. 
:(
    Опции темы
WDeveloper
Дата 31.1.2007, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



Пишу мини-чат. Схема работы такая. Через Интернет при запуске передаётся IP адрес "себя же", запускается далее клиент, который забирает эти данные серверные и коннектиться к нему.
Всё почти работает. Но проблема вот в чём.
Клиент запускается на Dial-UP соединении. А вот сервер запускается на компе который находиться в локальной сети (там сетка на 40 компьютеров) и выход их во внешнюю сеть только через прокси-сервер.
Когда сервер пытается определить свой айпишник вот так:
Код
function GetLocalIP: String;
const WSVer = $101;
var
  wsaData : TWSAData;
  P       : PHostEnt;
  Buff    : array [0..127] of Char;

begin

  Result := '';
  if ( WSAStartup( WSVer, wsaData ) = 0 ) then begin

    if ( GetHostName( @Buff, 128 ) = 0 ) then begin

      P := GetHostByName( @Buff );
      if ( P <> nil ) then
        Result := iNet_ntoa( PInAddr( p^.h_addr_list ^) ^);

    end;

    WSACleanup;

  end;

end;

Но это собственно определение айпишника для внутренней сети (локальной), а вот как определить внешний IP адрес?

т.к. сервер определяет свой адрес как например: 192.168.0.10 и как к нему присоединишься из другого города если это его адрес в локальной сети..!?
Может кто-то поделиться кодом, который поможет определять внешний адрес?

PM MAIL   Вверх
Snowy
Дата 31.1.2007, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Никак.
К компьютеру за прокси законнектиться нельзя.
PM MAIL   Вверх
RA
Дата 31.1.2007, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 10
Всего: 115



Есть как минимум 3 выхода.

1. Устанавливать соединение через hamachi
2. Диалапщика сделать сервером
3. заплатить 5 баксов и получить выделенный IP
PM   Вверх
WDeveloper
Дата 31.1.2007, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



Ясно.. 

RA
А во втором случае удасться законнектиться клиентом из локальной сети к дайл-апщику серверу?
( Из локали запрещены прямые подключения, только через прокси )
Но где тогда настройки прокси у TClientSocket?
PM MAIL   Вверх
Romikgy
Дата 31.1.2007, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



имхо проще поменять протокол работы и сделать по типу аси,
на фриварном сервере в сети поднять сайт с пхп и БД
и написать для него клиентов,
через этот сервер и будут мессаги бегать, и не надо стат айпи


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
WDeveloper
Дата 31.1.2007, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



А суть Hamachi в чём? Можно ли попытаться мини-хамачи изобразить самому программно? smile

Добавлено @ 20:12 
Romikgy
Спасибо. Совет действительно дельный.. Скорее всего буду думать о чём-то подобном.
PM MAIL   Вверх
WDeveloper
Дата 1.2.2007, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



Romikgy
Кстати, ты пишешь, что:
Цитата
через этот сервер и будут мессаги бегать, и не надо стат айпи

а через какой именно сервер? Где он будет стоять?
Не на бесплатном же хосте.. там его же не поднимешь.. Или посредством какого-то обновления кидать инфу в БД и скачивать её..?
PM MAIL   Вверх
Romikgy
Дата 1.2.2007, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(WDeveloper @  31.1.2007,  23:40 Найти цитируемый пост)
Или посредством какого-то обновления кидать инфу в БД и скачивать её..? 

приблизительно так
PS  я же только идею подкинул , а как ее реализовать дело техники и тебя smile


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
RA
Дата 3.2.2007, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 10
Всего: 115



Цитата(WDeveloper @  31.1.2007,  19:28 Найти цитируемый пост)
( Из локали запрещены прямые подключения, только через прокси )
Но где тогда настройки прокси у TClientSocket? 


Ах да, этот допотопный компонент не может через прокси, ну в этом случаи есть как минимум два пути
1. Сменить компонент на Indy либо ICS (примеры должны быть на форуме, в нете точно есть)
2. Если лень изучать новые компоненты то можно соединяться через FreeCap http://freecap.ru  что это и зачем почитаешь на сайте и поймёшь. 


Цитата(WDeveloper @  31.1.2007,  20:10 Найти цитируемый пост)
А суть Hamachi в чём? Можно ли попытаться мини-хамачи изобразить самому программно? 


Суть хамачи объяснять долго, но в крации это некая утилита создающая виртуальную локальную сеть между пользователями хамача. http://www.hamachi.cc

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

ЗЫ: Лучше всего пересаживайся на ICS

Это сообщение отредактировал(а) RA - 3.2.2007, 19:10
PM   Вверх
WDeveloper
Дата 4.2.2007, 03:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



RA, спасибо за ответ!
А что за компоненты ICS, не слышал о них smile Они были в D7?
PM MAIL   Вверх
RA
Дата 4.2.2007, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 10
Всего: 115



Как написанно в книге "Indy in Depth" компоненты ICS хотели включить в состав дефолтовых компонентов для "Delphi" но их автор был против.

ICS - www.overbyte.be 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0613 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.