如何利用C++ Builder 5.0 Enterprise 创建用户自己的网上聊天程序

如何利用C++ Builder 5.0 Enterprise 创建用户自己的网上聊天程序
 网络是一个激动人心的领域,编写网络上的应用程序更是很多程序员向往的情节,然而编写网络程序需要掌握大量的网络传输协议、编程接口和WinSock32 API 函数,正因为如此,要完成从Windows程序员到Web程序员的转变不是一件易事.最近笔者成功的用C++ Buil--der 5.0 Enterprise 版编写出了网上聊天程序,特介绍如下:

  一、 原理:网络聊天工具需要通过TCP/IP协议,因此可以把网络聊天程序分为服务器端和客户器端两部分,其中 服务器端用以把程序转换成一个虚拟的 TCP/IP 服务器. 并且和指定的客户机建立连接,在连接成功后,向指定的客户器发送和接收数据;客户器端把程序转换成一个虚拟的TCP/IP 客户器,并且向指定的服务器发出连接信号,在连接成功后,向指定的服务器发送和接收数据。在C++ Builder 5.0 环境下服务器端和客户器端的功能分别由TServerSocket控件和TClientSocket 控件加以实现。其中TCP/IP协议以包含在控件的属性中,因此只要正确填入属性,便可实现网上通讯。

  二、具体实现:首先`在C++ builder 5.0 环境下建立一个Application ,并保存为Project1。在Form1 上添加如下控件,并设置相关属性,其中Memo2于显示对方传来的信息,其中Memo1用于显示传给对方的信息:

控件名称         属性         值

TBevel         Caption       Bevel1

TSpeedButton     Caption       SpeedButton1

TMemo         Caption       Memo1

TMemo         Caption       Memo2

TMainMenu       Caption       MainMenu1

TServerSocket     Caption       ServerSocket1

TClientSocket     Caption      ClientSocket1

  同时在 MainMenu1控件中增加 三个菜单项,其属性为

Name                 Caption  

Connect               连接

Disconncet              断开

Listin                监听

  在Unit1 的Private中添加:

    bool   IsServer;

    String  Server;

  在Connect 的Click句柄添加如下代码:

void __fastcall TForm1::ConnectClick(TObject *Sender)

{

if (ClientSocket1->Active){ ClientSocke1t->Active = false;} // 判断是否以连接,如连接则断开连接//

if (InputQuery("Computer to connect to", "添入要连接的机器的IP地址:", Server))

{

   if (Server1.Length() > 0)//判断用户是否已经添入//

   {

    ClientSocket-1>Host = Server;//设置要连接的IP地址为用户指定的IP地址值//

    ClientSocket1->Active = true;//进行连接//

   }

}

}

  在Listen的Click句柄添加如下代码:

void __fastcall Form1 ::ListenClick(TObject *Sender)

{

Listen->Checked = !Listen->Checked;

if (Listen->Checked)

   ServerSocket1->Active = true;//服务器端监听来自客户器断的信号//

else

  ServerSocket1->Active = false;



}

  在Disconnect 的Click句柄添加如下代码:

void __fastcall TForm1::ExitClick(TObject *Sender)

{

ServerSocket1->Close();//关闭服务器端//

ClientSocket1->Close();//关闭客户器端//

Close();

}

  在Memo1 的KeyDown句柄添加如下代码:

void __fastcall TForm1::Memo1KeyDown(TObject *Sender, WORD &Key,

   TShiftState Shift)

{

if (Key == VK_RETURN)

{

   if (IsServer)

     {ServerSocket->Socket->Connections[0]->SendText(

     Memo1->Lines->Strings[Memo1->Lines->Count - 1]); }//作为服务器一端发送数据//

   else

   { ClientSocket->Socket->SendText(Memo1->Lines->Strings[

    Memo1->Lines->Count -1]);}//作为客户器一端发送数据//

}

}

  在ClientSocket1的Connect句柄添加如下代码:

void __fastcall TForm1::ClientSocket1Connect(TObject *Sender , TCustomWinSocke

t *Socket)

{//当用户和远程服务器连接成功后,激发该事件//

StatusBar1->Panels->Items[0]->Text = "Connect to: " + Socket->RemoteHost;

}

  在ClientSocket1的Error句柄添加如下代码:

void __fastcall TForm1::ClientSocket1Error(TObject *Sender,

   TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)

{ //当用户和远程服务器连接失败后,激发该事件//

Memo2->Lines->Add("Error connecting to:" + Server);

ErrorCode = 0;

}

  在ClientSocket1的Read句柄添加如下代码:

void __fastcall TChatForm::ClientSocket1SeverRead(TObject *Sender, TCustomWinSo

cket *Socket)

{

//当作为客户器一端读来自服务器一端的数据时,激发该事件//

Memo2->Lines->Add(Socket->ReceiveText());

}

  在SeverSocket1的ClientRead句柄添加如下代码

void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocke

t *Socket)

{

//当作为客户器一端读来自服务器一端的数据时,激发该事件//

Memo2->Lines->Add(Socket->ReceiveText());

}

在SeverSocket1的Accept句柄添加如下代码

void __fastcall TForm1::ServerSocket1Accept(TObject *Sender, TCustomWinSocket

*Socket)

{ //当服务器成功的监听到来自客户器的信号后,激发该事件//

IsServer = true;

StatusBar1->Panels->Items[0]->Text = "Connect to: " + Socket->RemoteAddress;



}

  在Form1的Create句柄添加如下代码:

void __fastcall TForm1::Form1Create(TObject *Sender)

{

  IsServer=false;

}

注:“//”为注释.

  以上程序C++ Builder 5.0Enterprise通过。

  摘自《赛迪网》 孙航东/文
阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
C Builder 5.0 企业版完整光盘镜像是指包含了完整安装程序和所有必需文件的光盘映像文件。C Builder是一款强大的集成开发环境(IDE),用于开发软件应用程序。企业版是C Builder的一个版本,通常具有更多功能和特性,适用于企业级软件开发。 完整光盘镜像是一个包含完整软件安装包的映像文件,通常以ISO或IMG格式存储。使用完整光盘镜像可以在不需要物理光盘的情况下安装软件。用户可以直接将光盘镜像文件写入可启动的光盘或使用虚拟光驱软件来加载并安装软件。 C Builder 5.0是由Borland公司于1999年发布的版本。它是一款广泛用于Windows平台上的应用程序开发工具,支持多种编程语言(如C++和Delphi)以及面向对象的编程。它具有强大的图形用户界面设计工具、代码编辑器、调试器和编译器等功能,可以大大提高开发效率。 企业版是C Builder的高级版本,专为企业级软件开发人员设计。它提供了更多的功能和工具,如数据库连接器、多线程支持、网络编程组件等,使开发人员能够更快速地开发出高质量的企业级应用程序。 总之,C Builder 5.0企业版完整光盘镜像是一个存储了C Builder 5.0企业版完整安装程序和所有必需文件的光盘映像文件。它是一种方便的安装方式,可以节省时间和资源,并提供了更多的功能和特性,适用于企业级软件开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蝈蝈俊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值