首页 / 软件开发 / C++ / 利用CB创建用户自己的网上聊天程序
利用CB创建用户自己的网上聊天程序2010-03-18网络是一个激动人心的领域,编写网络上的应用程序更是很多程序员向往的情节,然而编写网络程序需要掌握大量的网络传输协议、编程接口和WinSock32 API 函数,正因为如此,要完成从Windows程序员到Web程序员的转变不是一件易事.最近笔者成功的用C++ Builder 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 Bevel1TSpeedButton Caption SpeedButton1Tmemo Caption Memo1Tmemo Caption Memo2TMainMenu Caption MainMenu1TServerSocket Caption ServerSocket1TClientSocket 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;
}