⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.~cpp

📁 局域网内的2机通讯,好像还有些欠缺。由于没有时间和精力在继续改正
💻 ~CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Server.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
     if(Button1->Caption=="启动")
     {
           Server->Active=true;
           //服务器Socket打开 ,服务器处于监听状态
           Button1->Caption="停止";
           //Button1按钮易名
           Memo1->Lines->Add("服务器已经启动");
        }
     else
     {
           Server->Active=false;
           //关闭服务器
           Button1->Caption="启动";
           Memo1->Lines->Add("服务器已经关闭");
     }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
   if(Memo2->Lines->Strings[0]!="")
   {
       AnsiString message="服务器发送:"+Memo2->Lines->Strings[0];
       Memo1->Lines->Add(message);
       Memo2->Clear();
       for(int i=0;i<Server->Socket->ActiveConnections;i++)
             Server->Socket->Connections[i]->SendText(message);
   }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
    Form1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerAccept(TObject *Sender,
      TCustomWinSocket *Socket)
{
   AnsiString str=Socket->RemoteAddress;
   //获得客户端的IP地址
   Edit1->Text=str;
   //服务器端显示客户IP地址
   str="服务器已经接收到"+Socket->RemoteHost+"的连接请求";
   for(int i=0;i<Server->Socket->ActiveConnections;i++)
        Server->Socket->Connections[i]->SendText(str);
   //通过服务器端套接字告知相应客户端已经收到连接请求
   Memo1->Lines->Add(str);     
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
{
        AnsiString str=Socket->ReceiveText();
        //服务器接收来自客户端的信息
        Memo1->Lines->Add(str);
        //将接收到的信息在Memo1 显示
}
//---------------------------------------------------------------------------

void __fastcall TForm1::NMStrmServ1MSG(TComponent *Sender,
      const AnsiString sFrom, TStream *strm)
{
  if(this->SaveDialog1->Execute())
  {
    if(FileExists(this->SaveDialog1->FileName))
    {
      if(MessageBox(Handle,"目标文件已经存在,是否删除之?","信息提示",MB_YESNO)==IDNO)
      {
        return;
      }
     DeleteFile(this->SaveDialog1->FileName);
    }
    TFileStream *MyFStream;
    //建立文件
    MyFStream=new TFileStream(this->SaveDialog1->FileName,fmCreate);
    try
    {
       MyFStream->CopyFrom(strm,strm->Size);
       MessageBox(Handle,"接收目标主机发来的文件操作成功!","信息提示",MB_OK);
    }
    catch(...)
    {
       MessageBox(Handle,"接收目标主机发来的文件操作失败!","信息提示",MB_OK);
    }
    MyFStream->Free();
  }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -