Цитата(Дерзающий @ 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()); } //---------------------------------------------------------------------------
|
|