Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программирование передачи данных по сети Интернет 
:(
    Опции темы
Glorius
Дата 13.3.2009, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Добрый день.
Есть идея создать программу обмена сообщениями и файлами наподобие ICQ между двумя удаленными компьютерами по сети. Не очень хорошо разбираюсь в программировании, создал несколько программок, достаточно функциональных, но далеко не спец и под интернет не программировал вообще. Подскажите какими средствами это все делается, какие темы нужно изучить, какими компонентами нужно пользоваться. 
Спасибо.
PM MAIL   Вверх
UniBomb
Дата 13.3.2009, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

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



Пример реализации с исходниками.


--------------------
PM MAIL ICQ Skype   Вверх
Glorius
Дата 13.3.2009, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(UniBomb @  13.3.2009,  18:00 Найти цитируемый пост)
Пример реализации с исходниками.

Спасибо посмотрю. Но это пример чата в локальной сети? А в сети интернет?

Мне бы элементарный пример для понимания принципа работы. Что нибудь типа поля Мемо, поля Edit и кнопки на форме клиентского приложения. Функциональность которого бы заключалась по нажатию кнопки в отправке строчки из поля Edit в поле Мемо своего приложения, ну и собственно в поле Мемо приложения удаленного пользователя. Связь через интернет.
PM MAIL   Вверх
Alca
Дата 13.3.2009, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



HTTP?

Добавлено через 4 минуты и 32 секунды
Цитата

какими средствами это все делается

Indy


--------------------
PM WWW ICQ Skype Jabber   Вверх
Glorius
Дата 14.3.2009, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Alca @  13.3.2009,  23:17 Найти цитируемый пост)
Indy

а поподробнее? может какие примеры, ссылки где об этом доходчиво написано
PM MAIL   Вверх
Alca
Дата 14.3.2009, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



C:\Program files\Borland\CBuilder6\Examples\Indy


--------------------
PM WWW ICQ Skype Jabber   Вверх
Glorius
Дата 15.3.2009, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Что-то не получается наладить связь по сети интернет. 
Создаю сервер на компьютере со статическим ай-пи, задав порт (как я понял это может быть любай цифра из определенного диапазона, я пробовал 4964, 5500, 6701).
Пробую подключиться клиентом с другого компьютера, задав в свойство Host ай-пи сервера и в свойство Port - порт сервера.
В событии клиента при подключении к серверу записываю вывод сообщения что присоединился.
В событии сервера при подключении клиента записываю вывод сообщения, что присоединился клиент.

Так вот нажав на копку "Подключиться к серверу" в клиенте нет сообщения об успешности подключения, соответственно на сервере тоже, то есть связь не установлена.
Код
void __fastcall TForm1::BCreateClick(TObject *Sender)
{
ServerSocket1->Port = StrToInt(EPort->Text);
BCreate->Enabled = false;
BJoin->Enabled = false;
BDisconnect->Enabled = true;
ServerSocket1->Open();
Memo1->Lines->Add("Сервер создан");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BJoinClick(TObject *Sender)
{
ClientSocket1->Host = CBHost->Text;
ClientSocket1->Port = StrToInt(EPortClient->Text);
BCreate->Enabled = false;
BJoin->Enabled = false;
BDisconnect->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BDisconnectClick(TObject *Sender)
{
if (ServerSocket1->Active)
  {
    ServerSocket1->Close();
    Memo1->Lines->Add("Сервер отключен");
  }
if (ClientSocket1->Active)
  {
    ClientSocket1->Close();
  }
BCreate->Enabled = true;
BJoin->Enabled = true;
BDisconnect->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
Memo1->Lines->Add("Присоединился клиент");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientDisconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
Memo1->Lines->Add("Клиент отсоединился");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,
      TCustomWinSocket *Socket)
{
Memo1->Lines->Add("Присоединился к серверу");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Disconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
Memo1->Lines->Add("Отключился от сервера");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
ServerSocket1->Close();
ClientSocket1->Close();
}



Что я делаю не так?
PM MAIL   Вверх
Glorius
Дата 15.3.2009, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Мда, собственно забыл активизировать клиента.
Код
void __fastcall TForm1::BJoinClick(TObject *Sender)
{
ClientSocket1->Host = CBHost->Text;
ClientSocket1->Port = StrToInt(EPortClient->Text);
ClientSocket1->Open();
BCreate->Enabled = false;
BJoin->Enabled = false;
BDisconnect->Enabled = true;
}



Теперь выскакивает ошибка "Asynchronous socket error 10060".

Это сообщение отредактировал(а) Glorius - 15.3.2009, 17:49
PM MAIL   Вверх
Alca
Дата 15.3.2009, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Цитата

Теперь выскакивает ошибка "Asynchronous socket error 10060".

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


--------------------
PM WWW ICQ Skype Jabber   Вверх
Glorius
Дата 15.3.2009, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Alca @  15.3.2009,  19:49 Найти цитируемый пост)
Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера. 

Это я уже понял, а вот как это побороть пока не придумал.
PM MAIL   Вверх
Glorius
Дата 15.3.2009, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



В дополнение.
Изучая тему нашел информацию что связь еще зависит от типа доступа в интернет. Проверяю работоспособность на двух компьютерах подключенных по ADSL, у одного ай-пи адрес динамический, у второго (сервера) - статический.
PM MAIL   Вверх
xvr
Дата 16.3.2009, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



А Firewall'а там по пути нет случайно? 
PM MAIL   Вверх
Glorius
Дата 16.3.2009, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(xvr @  16.3.2009,  19:45 Найти цитируемый пост)
А Firewall'а там по пути нет случайно? 

есть, но при отключенных фаерволах та же ошибка
PM MAIL   Вверх
Dem_max
Дата 16.3.2009, 20:33 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

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



Glorius
Цитата
Теперь выскакивает ошибка "Asynchronous socket error 10060".

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


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Glorius
Дата 16.3.2009, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Dem_max @  16.3.2009,  20:33 Найти цитируемый пост)
Сокет должен работать в асинхронном режиме, а получается так что ты пытаешься его заставить работать в синхронном режиме что присуще консольным приложениям сожержащим основной поток.

И как мне заставить его работать в асинхронном режиме?
PM MAIL   Вверх
Anikmar
Дата 16.3.2009, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

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



А сервер к нету подключен через ADSL модем или роутер? Если через Роутер - в каком режиме он работает мост или роутер?
PM MAIL ICQ   Вверх
Glorius
Дата 16.3.2009, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Anikmar @  16.3.2009,  22:04 Найти цитируемый пост)
А сервер к нету подключен через ADSL модем или роутер? Если через Роутер - в каком режиме он работает мост или роутер?

ADSL modem D-Link 2500U.
PM MAIL   Вверх
Anikmar
Дата 16.3.2009, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

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



Так вроде он и в режиме роутера работать может. Глянтьте на всякий случай, а то может тут зря воды столько развели, а ларчик бах и откроется.
PM MAIL ICQ   Вверх
Glorius
Дата 16.3.2009, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Anikmar @  16.3.2009,  22:16 Найти цитируемый пост)
Так вроде он и в режиме роутера работать может. Глянтьте на всякий случай, а то может тут зря воды столько развели, а ларчик бах и откроется.

а как это определить?
PM MAIL   Вверх
Anikmar
Дата 16.3.2009, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

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



Цитата(Glorius @  16.3.2009,  22:22 Найти цитируемый пост)
а как это определить? 

Если вы намерены писать достаточно серьезное сетевое приложение, то просто обязаны узнать как работают роутеры, что такое NAT и т.п.
Зайдите в настройки роутера и посмотрите:
1. В каком режиме он находится (мост или роутер)
2. Включен ли у него аппаратный файрволл
3. Попробуйте в любом случае установить прямой рефорвардинг нужных вам портов.

Должна же быть к нему инструкция? Конкретно эту модель я ни разу не настраивал - думаю информации в нете по ней уйма. Просто на сколько я помню он поддерживает беспроводную сетку тогда и роутить он просто обязан уметь.
PM MAIL ICQ   Вверх
Glorius
Дата 16.3.2009, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Anikmar, вы можете кратко и в достаточном объеме пояснить какие именно настройки ДОЛЖНЫ быть установлены на модеме сервера и клиента, в частности как определить режим (мост или роутер) и как его установить, включен ли файервол и как установить прямой рефорвардинг нужных мне портов?
Или мне нужно глубоко изучать тему? Приложение предполагается не сложное, на уровне обмена информацией между 2 компьютерами.
PM MAIL   Вверх
Anikmar
Дата 16.3.2009, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

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



Цитата(Glorius @  16.3.2009,  22:33 Найти цитируемый пост)
Anikmar, вы можете кратко и в достаточном объеме пояснить какие именно настройки ДОЛЖНЫ быть установлены на модеме сервера и клиента, в частности как определить режим (мост или роутер) и как его установить, включен ли файервол и как установить прямой рефорвардинг нужных мне портов?
Или мне нужно глубоко изучать тему? Приложение предполагается не сложное, на уровне обмена информацией между 2 компьютерами. 

Если бы у меня был такой модем - я бы сразу вам все рассказал и не стал бы тянуть резину. К сожалению у меня другая модель, они отличаются существенно.

Могу только посоветовать:
Посмотрите туттуттут

А главное, используйте ЭТО
PM MAIL ICQ   Вверх
Glorius
Дата 16.3.2009, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Anikmar, да, как настроить - это можно нагуглить, но вам спасибо. Я же имел ввиду ЧТО ИМЕННО нужно настроить. То есть, нужен мост или роутер, нужно устанавливать прямой рефорвардинг портов или нет.
PM MAIL   Вверх
Anikmar
Дата 16.3.2009, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

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



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

Вкратце расскажу про NAT. В виду того, что общее количество IP адресов ограничено и быстро заканчивается, а IP v6 еще не известно когда получит широкое распространение (слишком много аппаратных роутеров необходимо поменять) наиболее широкое распространение получил NAT - способ ретрансляции сетвых адресов при помощи роутеров.

Суть работы роутера достаточно проста: как только один из компов пытается подключится к другому (указывает его IP и порт) реально этот запрос сначала идет к роутеру (шлюзу). Сам роутер имеет свой IP и виден всему интернету. Он перенаправляет ваш запрос на указанный адрес. В случае с одним компом - все в порядке. А если 10 компов в локалке пытаются загрузить странички с одного сервака? Ведь сервак должен ответить, а для него - это всего лишь 1 адрес IP, который имеет роутер. И сервак в интернете никак не сможет понять к какому конкретно компу за роутером он должен обратиться. Это и есть NAT - роутер динамически меняет IP заголовок и подставляет фиктивные адреса портов, а затем при поступлении на эти порты ответов транслирует назад.

Теперь о вашей ситуации.
Если у вас сервер спрятан за роутер, то при поступлении пакета от клиента из Беларуссии роутер понятия не имеет куда этот пакет ему деть. Потому, как для порта, указанного в заголовке у него нет в таблице соответствия на какую из локальных машин этот пакет отправить. Даже если локальных машин в сети всего одна. Вот он и выкидывает пакет. Для этого и существует порт форвардинг - когда роутеру приказывают, что при поступлении пакетов на такой-то порт немедленно транслируй на такую-то машину в сети и не занимаяся ерундой.

Это вкратце и по возможности доходчиво в меру моих знаний. Я не гуру, поэтому сказал, что сам понимаю.

Добавлено через 3 минуты и 6 секунд
Цитата(Glorius @  16.3.2009,  22:51 Найти цитируемый пост)
Anikmar, да, как настроить - это можно нагуглить, но вам спасибо. Я же имел ввиду ЧТО ИМЕННО нужно настроить. То есть, нужен мост или роутер, нужно устанавливать прямой рефорвардинг портов или нет. 


Поставьте в режим моста и отключите файрволл.

Дополнительно (по идее уже не нужно, но сделайте):
Включите режим порт форвардинг на все порты, все пакеты напрямую на компьютер сервера. Он должен позволять задавать порты по диапазону - для всех протоколов все диапазоны перенапрвьте на сервер.

PM MAIL ICQ   Вверх
Glorius
Дата 16.3.2009, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Anikmar, спасибо, попробую, завтра отпишу о результатх.
PM MAIL   Вверх
Glorius
Дата 17.3.2009, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Anikmar, все настройки серверного модема такие как показаны по вашей первой ссылке, то есть настроен модем как мост (bridge).

А вот как выглядит статусное окно модема клиентской машины. Тоже мост. При отключенных фаерволах пинг не проходит как и не проходил раньше.

Это сообщение отредактировал(а) Glorius - 17.3.2009, 15:47

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  _____.JPG 71,04 Kb
PM MAIL   Вверх
Anikmar
Дата 17.3.2009, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

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



А можете сказать, какой IP у вашего сервера? (Если нет военной тайны, конечно).
PM MAIL ICQ   Вверх
Glorius
Дата 17.3.2009, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Anikmar @  17.3.2009,  15:58 Найти цитируемый пост)
А можете сказать, какой IP у вашего сервера? (Если нет военной тайны, конечно).

впринципе нет, только я дам адрес клиентской машины, она у меня под рукой, а в моей программе нету особой разницы кто именно будет сервером, IP-адрес 86.57.178.37.
Если вы не сильно заняты, может поможете мне справиться с этой проблемой в ICQ? Мой номер 352336167
PM MAIL   Вверх
Anikmar
Дата 17.3.2009, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

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



Попробуем. Я свяжусь с вами примерно через 30 минут - когда до дому доеду
PM MAIL ICQ   Вверх
KTatsu
Дата 11.5.2009, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 23.8.2008
Где: Москва

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



Тема относительно не старая, так, что задам свой вопрос сюда, вместо того, чтобы писать новый пост, тем более вопрос по теме.

Тоже возникла проблеммка с передачей данных по сети.
Я хочу сделать на своей машине сервер, а у друга будет клиент, проблема, с которой я столкнулся - маршрутеризаторы.
По LAN отлично работает, а вот из внешней сети не знаю как присоединиться.
Использовал компоненты TClientSocket и TServerSocket.
Дело в том, что у моего провайдера сидят несколько клиентов на одном IP через адсл, дальше мой домашний роутер и домашняя сеть.
Вопрос, как связаться с сервером при таком раскладе? Понимаю, что существует НАТ, но как им воспользоваться?
Или как должно выглядеть обращение в сеть? Я должен с клиента отправить запрос, содержащий все IP которые стоят на пути к серверу?

Поиском пользовался, есть похожие темы, но самого ответа так и не нашел.
PM MAIL   Вверх
xvr
Дата 11.5.2009, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



С одной стороны должен быть внешний статический IP адрес. Противоположная сторона должна открывать TCP соединение с этим IP. Иначе никак  smile 
PM MAIL   Вверх
KTatsu
Дата 11.5.2009, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 23.8.2008
Где: Москва

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



Не понял... IP у меня статический.
Цитата

Противоположная сторона должна открывать TCP соединение с этим IP.
Т.е. сервер или клиент?
Вот к примеру, щас мне друг послал файл через квип напрямую, у меня написано следующее в квипе:

     Входящий файл:  123.rar
     Размер:  3,89 Мб
     Внешний IP:  92.112.102.***
     Внутренний IP:  192.168.1.*, 92.112.102.***

Т.е. для передачи, всетаки клиент использует IP, как внешний, так и внутренний.
А вот в случае когда я другу передаю файл, у него пишет так:

     Входящий файл:  123.rar
     Размер:  3,89 Мб
     Внешний IP:  213.141.151.***
     Внутренний IP:  127.0.0.1

Этого я вообще не могу понять, чепуха какая-то с внутренним smile 
Так что мне делать? Если указывать все IP на пути от провайдера до указанного компа, куда их вписывать, если графа под адрес одна? писать через запятую адреса чтоли? smile 

Это сообщение отредактировал(а) KTatsu - 11.5.2009, 19:21
PM MAIL   Вверх
xvr
Дата 12.5.2009, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(KTatsu @ 11.5.2009,  19:18)
Не понял... IP у меня статический.

IP должен быть не только статический, он еще должен быть доступен снаружи
Цитата

Цитата

Противоположная сторона должна открывать TCP соединение с этим IP.
Т.е. сервер или клиент?
Это не важно (конечно лучше будет, если внешний IP будет у сервера, иначе придется заставлять сервер конектится к клиенту, что несколько сложнее  smile )
Цитата

Вот к примеру, щас мне друг послал файл через квип напрямую, у меня написано следующее в квипе:

     Входящий файл:  123.rar
     Размер:  3,89 Мб
     Внешний IP:  92.112.102.***
     Внутренний IP:  192.168.1.*, 92.112.102.***

Т.е. для передачи, всетаки клиент использует IP, как внешний, так и внутренний.
IP используется один и тот же. Это как раз задача шлюзов (и NAT'ов) по дороге преобразовать IP и порт так, что бы была возможна 2х сторонняя связь. С точки зрения установления соединения нужно просто открыть порт (с определенным номером) на сервере по заданному IP , т.е. ничем от соединения в локалке не отличается. 
Но этот IP сервера должен быть, и должен быть доступен снаружи.


Цитата

А вот в случае когда я другу передаю файл, у него пишет так:

     Входящий файл:  123.rar
     Размер:  3,89 Мб
     Внешний IP:  213.141.151.***
     Внутренний IP:  127.0.0.1

Этого я вообще не могу понять, чепуха какая-то с внутренним smile 
Это так называемый loopback IP, обозначает свой собственный компьютер. Нигде, кроме самого компьютера, смысла не имеет.
Цитата

Так что мне делать? Если указывать все IP на пути от провайдера до указанного компа, куда их вписывать, если графа под адрес одна? писать через запятую адреса чтоли? smile
Писать один внешний адрес

PM MAIL   Вверх
KTatsu
Дата 12.5.2009, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 23.8.2008
Где: Москва

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



Цитата

Писать один внешний адрес
Не получается с одним лишь внешним адресом... Может другие компоненты нужно использовать? Я пытаюсь через TServerSocket и TClientSocket.
Цитата

обозначает свой собственный компьютер
Я знаю, потому и говорю, что чепуха, ведь за внешним IP у меня еще роутер и сам комп...
PM MAIL   Вверх
xvr
Дата 12.5.2009, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(KTatsu @ 12.5.2009,  13:42)
Цитата

Писать один внешний адрес
Не получается с одним лишь внешним адресом...

Если этот один ВНЕШНИЙ адрес СУЩЕСТВУЕТ - то должно получится. Если его нет - то облом, нужно менять архитектуру построения системы В ПРИНЦИПЕ. Например использовать внешние сервера или proxy
Цитата

 Может другие компоненты нужно использовать? Я пытаюсь через TServerSocket и TClientSocket.
Компонентами здесь ничего не решить
Цитата

Цитата

обозначает свой собственный компьютер
Я знаю, потому и говорю, что чепуха, ведь за внешним IP у меня еще роутер и сам комп...
Это означает, что QIP не смог определить внутренний IP (что странно)

PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

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

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

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


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

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


 




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


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

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