Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программирование передачи данных по сети Интернет 
:(
    Опции темы
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   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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