VC语言

本类阅读TOP10

·VC++ 学习笔记(二)
·用Visual C++打造IE浏览器(1)
·每个开发人员现在应该下载的十种必备工具
·教你用VC6做QQ对对碰外挂程序
·Netmsg 局域网聊天程序
·Windows消息大全
·VC++下使用ADO编写数据库程序
·VC++学习笔记(四)
·非法探取密码的原理及其防范
·怎样在VC++中访问、修改注册表

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
介绍一个异步通信的socket类

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

async_socket类和MFC的CAsyncSocket相似,但不同的是它不使用应用程序的消息队列,而使用重载操作,因此它可以用在控制台应用程序中。
  使用这个类时要重载一些虚函数。如下:
 
//远程服务器关闭连接
//err - WinSock error code
virtual void on_close(int err);

//接受新连接请求
//err - WinSock error code
virtual void on_accept(int err);

//socket准备接受数据
//err - WinSock error code
virtual void on_read(int err);

//socket准备发送数据
//err - WinSock error code
virtual void on_write(int err);

//socket被创建,监听线程开始
//err - WinSock error code
virtual void on_attach();

//重载读操作完成
//err - Win32 error code
virtual void on_read_complete(DWORD err, DWORD len);

//重载写操作完成
//err - Win32 error code
virtual void on_write_complete(DWORD err, DWORD len);

//监听线程销毁
virtual void on_clear();
virtual void on_timeout();


    按下面的步骤可建立连接:
1 建立async_socket类。
2 on_attach 函数是创建socket时最先调用的函数。在这个函数里可以用bool read(char* pBuff, DWORD len) 和 bool       write(char* pBuff, DWORD len)实现读写操作。
3 on_read_complete函数可以实现接收数据。
4 on_write_complete函数可以实现传输数据。
5 监听socket要用on_accept,它会调用accept通知接受当前等待的连接请求。
6 也可以用select(from on_attach)和相应的标志获得通知。

很重要的一点是在多任务程序中,监听线程要调用所有提到的函数。
例子中包括用async_socket类实现的http服务器,和一些其他的辅助类。
 http://www.codeguru.com/code/legacy/network/async_socket.zip




相关文章

相关软件