Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Соединение 2 компа по Internet


Автор: Дерзающий 25.6.2008, 17:51
Вопрос состоит в том чтобы соединить 2 компьютера по локальной сети или интернет и передать файл. можно ли это сделать с использованием сокетов и как можно?

Автор: jonie 25.6.2008, 18:44
определенно сокеты помогут. лучше всеже погугли (включая форум) по поводу их использования. вопрос ну очеень часто поднимаемый, и особых проблем в поиске ответа нет.
кроме того есть в билдере wrapper-ы над сокетами (например Indy), их удобнее и проще использовать....

Автор: XPyCT 12.7.2008, 16:50
Цитата(Дерзающий @ 25.6.2008,  17:51)
Вопрос состоит в том чтобы соединить 2 компьютера по локальной сети или интернет и передать файл. можно ли это сделать с использованием сокетов и как можно?

Может это поможет! когдато по примеру делал!

Код

/---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Chat.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 ServerSocket1->Active=true;
 // Делаем недоступную "Соединиться" (так как мы уже сервер)
 Button3->Enabled=false;
 // Делаем доступную "Отключиться" (понятно зачем)
 Button4->Enabled=true;
 Memo1->Lines->Add("Сервер создан");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
  // Присваиваем Клиенту Ай-Пи из Эдита
ClientSocket1->Address=Edit3->Text;
ServerSocket1->Active=true;
// Делаем недоступную "Создать" (так как мы коннектимся)
Button2->Enabled=false;
// Делаем доступную "Отключиться" (понятно зачем)
Button4->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
Memo1->Lines->Add("Клиент подсоеденился");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Connecting(TObject *Sender,
      TCustomWinSocket *Socket)
{
 Memo1->Lines->Add("Вы присоедены");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
////Это была обработка исключительных ситуаций , типа пустых строк ввода ;
if(Edit2->Text=="")
{
ShowMessage("Введите ваш ник");
return;
}
if(Edit1->Text=="")
{
ShowMessage("Введите текст который надо отправить");
return;
}
Memo1->Lines->Add(Edit2->Text+"::"+Edit1->Text);
if(ServerSocket1->Active==true)
{
 ServerSocket1->Socket->Connections[0]->SendText(Edit2->Text+"::"+Edit1->Text);
}
 else
 {
  ClientSocket1->Socket->SendText(Edit2->Text+"::"+Edit1->Text);
 }
  Edit1->Text="";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
      TCustomWinSocket *Socket)
{
Memo1->Lines->Add(Socket->ReceiveText());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
{
Memo1->Lines->Add(Socket->ReceiveText());
}
//---------------------------------------------------------------------------


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)