动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ C/C++教程 ]的信息

本月文章推荐
.巨快的速度求得某一个目录的大小.
.初学者的福音:游戏开发新手入门.
.在C++ Builder6中使用XML.
.Winsocket编程之套接字原理.
.C语言中的面向对象(2)-C语言的多.
.C宏——智者的利刃,愚者的恶梦!.
.C++内存管理详解.
.Install Shield的使用介绍.
.C++箴言:使用对象管理资源.
.c++中关于堆内存(heap)的概念和操.
.用C实现exp函数!.
.C语言字符型数据.
.开机密码改进and带解释版.
.ActiveBPEL的安装和配置.
.用Delphi程序获取拨号连接的动态.
.C++ Builder 初学问与答(三).
.COM 组件设计与应用(一)起源及.
.在单独线程中执行对象成员函数.
.C语言基础教程(二)数据类型、变.
.图例实解:C++中类的继承特性.

Windows Sockets:使用 CAsyncSocket 类

发表日期:2008-3-8 |


本文介绍 CAsyncSocket 类的用法。请注重,该类在非常低的级别上封装 Windows Sockets API。 CAsyncSocket 适合那些对网络通信细节很了解,但希望利用回调的便利通知网络事件的程序员使用。基于该假定,本文仅提供基本说明。假如想利用 Windows Sockets 方便地处理 MFC 应用程序中的多个网络协议,而又不想放弃灵活性,可以考虑使用 CAsyncSocket 。您可能也会感觉到,自己直接编写通信程序要比使用 CSocket 类的通用替换模型效果更好。 “MFC 参考”中对 CAsyncSocket 进行了描述。Visual C++ 也提供了位于 Platform SDK 中的 Windows Sockets 规范。具体细节由您决定。Visual C++ 不提供 CAsyncSocket 的示例应用程序。 假如您对网络通信不是很了解,希望获得一个简单的解决方案,请使用带 CArchive 对象的 CSocket 类。有关更多信息,请参见 Windows Sockets:使用带存档的套接字。 本文包括:
  • 创建和使用 CAsyncSocket 对象。
  • 您具有的 CAsyncSocket 责任。
创建和使用 CAsyncSocket 对象 使用 CAsyncSocket
  1. 构造一个 CAsyncSocket 对象并使用该对象创建基础 SOCKET 句柄。 套接字的创建遵循两阶段构造的 MFC 模式。 例如: CAsyncSocket sock;sock.Create( ); // Use the default parameters
    - 或 -
    CAsyncSocket* pSocket = new CAsyncSocket;int nPort = 27;pSocket-> Create( nPort, SOCK_DGRAM );
    上面的第一个构造函数在堆栈上创建一个 CAsyncSocket 对象,第二个构造函数在堆上创建 CAsyncSocket 。上面的第一个 Create 调用使用默认参数创建流式套接字,第二个 Create 调用创建具有指定端口和地址的数据文报套接字。(任一个 Create 版本都可以和任一种构造方法一起使用。) Create 的参数有:
    • “端口”:短整型。 对于服务器套接字,必须指定端口。对于客户端套接字,通常接受此参数的默认值,该值答应 Windows Sockets 选择端口。
    • 套接字类型: SOCK_STREAM (默认值)或 SOCK_DGRAM 。
    • 套接字“地址”,如“FTP.microsoft.com”或“128.56.22.8”。 该地址为网络上的网际协议 (IP) 地址。很可能要始终依靠此参数的默认值。
    关于术语“端口”和“套接字地址”的解释见 Windows Sockets:端口和套接字地址。
  2. 假如套接字是客户端,则使用 CAsyncSocket::Connect 将此套接字对象连接到服务器套接字。 - 或 - 假如套接字是服务器,则将套接字设置为开始侦听(使用 CAsyncSocket::Listen)来自客户端的连接尝试。接收到连接请求时,用 CAsyncSocket::Accept 接受该请求。 接受连接后,可以执行验证密码等任务。
    注重 Accept 成员函数采用对新的空 CSocket 对象的引用作为它的参数。在调用 Accept 之前,必须构造该对象。假如此套接字对象超出范围,则连接关闭。不要对这个新套接字对象调用 Create 。有关示例,请参见文章 Windows Sockets:操作顺序。
  3. 通过调用 CAsyncSocket 对象的封装 Windows Sockets API 函数的成员函数,与其他套接字进行通信。 请参见“MFC 参考”中的 Windows Sockets 规范和 CAsyncSocket 类。
  4. 销毁 CAsyncSocket 对象。 假如在堆栈上创建了套接字对象,当包含函数超出范围时将调用此对象的析构函数。假如使用 new 运算符在堆上创建了套接字对象,则您必须负责使用 delete 运算符销毁此对象。 析构函数在销毁对象之前调用对象的 Close 成员函数。
有关代码中该顺序的示例(实际上是对于 CSocket 对象),请参见 Windows Sockets:操作顺序。您对 CAsyncSocket 的责任 创建 CAsyncSocket 类的对象后,该对象封装 Windows SOCKET 句柄并提供对此句柄的操作。使用 CAsyncSocket 时,假如您直接使用 API,则必须处理可能面对的所有问题。例如:
  • “阻塞”方案。
  • 发送和接收计算机之间的字节顺序差异。
  • 在 Unicode 和多字节字符集 (MBCS) 字符串之间转换。
有关这些术语的定义和其他信息,请参见 Windows Sockets:阻塞、Windows Sockets:字节排序和 Windows Sockets:转换字符串。 尽管存在这些问题,但假如应用程序需要您能获得所有的灵活性和控制能力, CAsycnSocket 类可能是正确的选择。假如应用程序没有这种需求,可考虑使用 CSocket 类。 CSocket 向您隐藏大量具体信息:它在阻塞调用期间抽取 Windows 消息并赋予您访问 CArchive 的权限,而 CArchive 为您治理字节顺序差异和字符串转换。 有关更多信息,请参见:

    Windows Sockets:背景知识 Windows Sockets:流式套接字 Windows Sockets:数据文报套接字
       

上一篇:C++ 虚基类 人气:435
下一篇:makefile写法 人气:504
浏览全部C/C++的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-12 team论坛 v2.0.4 bulid 080916 A
2008-10-12 Roclog v3.1.6
2008-10-12 SupeV v1.0.1 简体中文 GBK
2008-10-12 NetCMS v1.6.0.1010 正式版
2008-10-12 PHP考试系统PPFrame v1.2.7
2008-10-12 LPAS个人相册 v1.6.3
2008-10-12 快问仿百度知道系统 动态-静态-互
2008-10-12 方卡广告防点击系统 V1.0 GB2312
2008-10-12 泡菜内容管理系统[PCMS] v1.0 Bu
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成