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

📄 unit1.cpp

📁 <<C++Builder 6实用编程100例>>随书光盘
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        if(OpenDialog1->Execute())
                Edit3->Text=OpenDialog1->FileName;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
        if(Edit3->Text=="")
        {
                ShowMessage("请选择一个您要传送的文件.");
                return;
        }
        NMUDP1->RemoteHost=Edit1->Text;
        NMUDP1->RemotePort=StrToInt(Edit2->Text);
        NMUDP1->ReportLevel=Nmudp::Status_Basic;
        const int ThreshHold=2048;
        //载入文件流
        TFileStream *Strm=new TFileStream(Edit3->Text, fmOpenRead);
        char *Buffer=new char[ThreshHold];
        int BuffSize=Strm->Size;
        int Buffers=BuffSize/ThreshHold;
        for(int i=0;i<=Buffers;i++)
        {
                if(BuffSize>2048)
                {
                        Strm->Read(Buffer,ThreshHold);
                        NMUDP1->SendBuffer(Buffer,ThreshHold,ThreshHold);
                }
                else
                {
                        Strm->Read(Buffer,BuffSize);
                        NMUDP1->SendBuffer(Buffer,BuffSize,BuffSize);
                }
                BuffSize-=ThreshHold;
        }
        delete Buffer;
        delete Strm;
        Memo1->Lines->Add("");
}
//---------------------------------------------------------------------------

void __fastcall TForm1::NMUDP1DataReceived(TComponent *Sender,
      int NumberBytes, AnsiString FromIP, int Port)
{
        char *TmpBuffer=new char[NumberBytes+1];
        int i;
        //读取接收到的文件流
        NMUDP1->ReadBuffer(TmpBuffer,NumberBytes,i);
        TmpBuffer[NumberBytes]='\0';
        Memo1->Text=Memo1->Text+TmpBuffer;
        delete[] TmpBuffer;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::NMUDP1DataSend(TObject *Sender)
{
        StatusBar1->Panels->Items[0]->Text="文件传送完毕.";
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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