频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

用WinSock控件编写网络聊天器

来源:yesky 作者:网人 出处:巧巧读书 2006-02-07 进入讨论组
上一页 1 2 3 4 5 

  //在建立连接后,双方就可以在Edit1中输入谈话内容开始进
//行交谈了,按下Enter键后,将所在行的文本发送出去


void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
AnsiString Data;
if(Key==VK_RETURN)
{if (Edit2-$#@62;Text!="") //在没有选择发送的主机名时不能进行发送操作
{if(IsServer) //服务器端发出的数据
{Data= "["+TimeToStr(Now())+"]:("+ServerSocket1-$#@62;Socket-$#@62;LocalHost+")对"+"("+Edit2-$#@62;Text+")"+"说:"+Edit1-$#@62;Text;
ServerSocket1-$#@62;Socket-$#@62;Connections[TreeView1-$#@62;Selected-$#@62;Index]-$#@62;SendText(Data);
Memo1-$#@62;Lines-$#@62;Add(Data);
Edit1-$#@62;Text="";}
else //客户端发出的数据
{ Data="["+TimeToStr(Now())+"]:("+ClientSocket1-$#@62;Socket-$#@62;LocalHost+")对"+"("+Edit2-$#@62;Text
+")"+"说:"+Edit1-$#@62;Text;
ClientSocket1-$#@62;Socket-$#@62;SendText(Data);
Memo1-$#@62;Lines-$#@62;Add(Data);
Edit1-$#@62;Text="";}
}
else
ShowMessage("错误!!! 没有选择发送的主机名");
}
}
//---------------------------------------------------------------------------
//在网络中搜索服务器端时产生的事件
void __fastcall TForm1::ClientSocket1Lookup(TObject *Sender,
TCustomWinSocket *Socket)
{ //定义mouse的类型
Form1-$#@62;Cursor=crHourGlass ;
Edit1-$#@62;Cursor=crHourGlass;
Memo1-$#@62;Cursor=crHourGlass;
}
//选择发向数据的主机名
void __fastcall TForm1::TreeView1Change(TObject *Sender, TTreeNode *Node)
{
Edit2-$#@62;Text=TreeView1-$#@62;Selected-$#@62;TreeView-$#@62;Selected-$#@62;Text;
StatusBar1-$#@62;SimpleText="连接到:"+TreeView1-$#@62;Selected-$#@62;TreeView-$#@62;Selected-$#@62;Text;
} //监听
void __fastcall TForm1::BtnlistenClick(TObject *Sender)
{
ClientSocket1-$#@62;Active=false;
ServerSocket1-$#@62;Active=true;
StatusBar1-$#@62;SimpleText="正在监听...";
Form1-$#@62;Caption =Form1-$#@62;Caption+"--服务器端";
Btnlisten-$#@62;Enabled=false;
Btnconnect-$#@62;Enabled=false;
}
//连接
void __fastcall TForm1::BtnconnectClick(TObject *Sender)
{
if(InputQuery("连接到服务器","输入服务器地址:",Server))
{
if(Server.Length() $#@62;0){
ClientSocket1-$#@62;Host=Server; //确定服务器的主机名
ClientSocket1-$#@62;Active=true;
Btnlisten-$#@62;Enabled=false;
Btnconnect-$#@62;Enabled=false;
Btndisconnect-$#@62;Enabled=true;
Form1-$#@62;Caption =Form1-$#@62;Caption+"--客户端";}
}
}
//断开
void __fastcall TForm1::BtndisconnectClick(TObject *Sender)
{
//按下断开
ClientSocket1-$#@62;Close();
}
//---------------------------------------------------------------------------
//退出
void __fastcall TForm1::BtnExitClick(TObject *Sender)
{
ClientSocket1-$#@62;Close();
ServerSocket1-$#@62;Close();
Form1-$#@62;Close();
}
//编写完程序代码后,就要对源程序进行编译了,编译方法如下:

1.在菜单 project \ options 下,选择Packages 页,去掉Build with runtime packages 项的勾, 然后选择Linker 页,去掉 Use dynamic RTL 的勾,然后按“确定”按钮。
2.在菜单 project \ options 下,选择 Compiler 页,按下 Release 按钮,然后按“确定”按钮。
3.在菜单 Run \ Run (或F9) 进行编译就行。 用这种方法编译的可执行文件容量比较小, 而且可以在没有安装C++的系统中运行。在运行时 可单机也可多机操作,但必须要有一个主机打开程序的“监听”,其它客户机进行连接就行了。 快快来下载,编写自己的聊天程序吧!正文:http://www.qqread.com/bcb/d322282500.html 更多文章 更多内容请看网络管理实用手册网络故障手册网络组网专题专题,或进入讨论组讨论。
上一页 1 2 3 4 5 
收藏此文】【 】【打印】【关闭
较早的文章:计算机短信DIY

较新的文章:读书软件做自己的
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章