[网页高手]
Homepage
[网络编程]
Programe
[图形图像]
Picture
[冲浪宝典]
Insernet
[操作系统]
System
[软件教学]
Software
[数码时代]
Didgtale
[安全防御]
Didgtale
[IT学院]
Education
    
 
Google Web tongyi.net
 
    你的位置:首页 > 冲浪宝典 > 联络聊天 > 聊天程序的实现
冲浪宝典
  网页浏览

邮件工具

上传下载

QQ专栏

联络聊天

IP通信

冲浪技巧

局域网

网管知识

 
聊天程序的实现

  聊天程序是网络编程的基础,本文讲解了使用Visual C++编写基本的聊天程序的全过程,在此基础上,读者可根据需要编写聊天室、小游戏甚至远程控制等网络程序。


一、预备知识

  1.套接字简介
    
  套接字是一种网络编程接口,提供了发送和接受数据的机制,是网络编程的基础。套接字可分为数据报套接字(Datagram Sockets)和流式套接字(Stream Sockets)。数据报套接字提供了一种非连接的数据通讯方式,使用的是用户数据报协议(UDP),安全性差;而流式套接字提供了连接的数据通讯方式,使用传输控制协议(TCP)。OICQ在双方通讯时就使用了UDP协议。在程序实现上的主要区别在于:使用流式套接字时首先通讯双方要建立连接。

  2.WinSock简介
    
  WinSock是Windows Socket规范的简称,为应用程序开发商提供了一套简单的API,是开放的、支持多种协议的Windows下的网络编程接口。从1.0版到2.0.8版,经过不断完善,事实上已经成了Windows网络编程标准。在此基础上,为简化网络编程,Microsoft公司的基本类库提供了两个用于WinSock编程的类,即:CAsyncSocket和CSocket。CSocket是从CAsyncSocket继承而来,派生关系如图1。这两个类的成员函数等详细信息可参考MSDN和相关资料。


二.实现过程

  1. 新建工程,选择Projects中的MFC AppWizard(exe)类型,Project name命名为chat2,在Step 1中选择Dialog based,因为我们建立的是基于对话框的MFC程序,在step2中选择Windows sockets以得到WinSock的支持,单击<Finish>,完成应用向导。

  2. 设计界面和添加变量,根据对话框的界面和属性表为程序添加控件和设置其属性。

  3. 使用快捷键Ctrl+W打开类向导为对话框添加变量和函数。

  (1)为四个按钮添加单击按钮时对应的函数,函数名保持缺省。

  (2)将对话框的控件和变量相关联,具体关系见下表

  4. 添加变量并修改初始化函数。

  (1)使用FileViewf打开文件Chat2Dlg.h,在类定义前面加入如下代码(MySocket类在下面定义):
#include "mysocket.h"

  (2)使用Class View添加OnAccept、OnReceive、OnClose等函数,全部为void类型。并定义CMySocket型的两个变量,分别用于发送和接收数据,添加后类CChat2Dlg的定义代码中会增加如下声明:
CMySocketm_sConnectSocket,m_sListenSocket;
void OnClose();
void OnReceive();
void OnAccept();

  5. 编写自己的WinSock通讯类。

  Insert菜单中的New Class...添加新类,Class type选择Generic Class,Class name设置为CMySocket,基类设置为CAsyncSocket,继承关系为默认的public。

  (1)在类定义前面声明对话框类,代码如下:
class CChat2Dlg;

  (2)使用Class View添加函数OnAccept、OnReceive、OnClose、SetParents,具体类型添和参数,请参考MySocket.h中的部分(注意前三个函数为虚函数),添加后代码为:
CChat2Dlg * m_pDlg;
virtual void OnAccept(int);
virtual void OnReceive(int);
virtual void OnClose(int);
void SetParents(CChat2Dlg * pDlg);

  (3)编辑MySocket.cpp,首先在最前面添加#include "chat2dlg.h",以包括chat2Dlg中相应函数的定义,给函数的代码略。

  经过编译连接后,可以在两台联网的机器上运行程序,其中一个设置为服务端,单击“确定”,开始侦听,另一个程序设置为客户端,并把ip地址设置为服务端的机器的ip地址,单击“确定”,就可以进行通讯了。
     打印本文 | 推荐朋友 | 收藏文章 | 关闭窗口
 
 

    相关文章
 用ASP实现聊天室中的在线答题游戏    (2001年7月29日)

 用PHP+MySql编写聊天室     (2001年2月15日)

 Yahoo! Messenger 使用教程    (2001年2月8日)

 ICQ 使用技巧(一)    (2001年2月6日)

 ICQ 使用技巧(二)    (2001年2月6日)

 Atomtime98 使用教程    (2001年2月6日)

 ICQ使用诀窍点滴     (2000年10月27日)

 国产网上聊天工具阅兵    (2000年9月22日)

 
 

 

关于统一 | 联系合作 | 统一作品 | 版权申明 | 建站服务 | 更多说明
Copyright 2000-2003 Tongyi All rights reserved. 京ICP备05005608号