社区
C语言
帖子详情
请教如何用CAsyncSocket替代CSocket?
redeemer
2001-10-15 01:37:46
本人已完成一个邮件发送模块,可惜发送过程是异步阻塞的,因为用的是CSocket建立连接的,所以想用其父类CAsyncSocket来替代CSocket实现异步发送,即点击“发送”以后程序直接返回而不是阻塞,可是查看了MSDN等资料均不得法,哪位高手给予点拨?多谢!
...全文
126
10
打赏
收藏
请教如何用CAsyncSocket替代CSocket?
本人已完成一个邮件发送模块,可惜发送过程是异步阻塞的,因为用的是CSocket建立连接的,所以想用其父类CAsyncSocket来替代CSocket实现异步发送,即点击“发送”以后程序直接返回而不是阻塞,可是查看了MSDN等资料均不得法,哪位高手给予点拨?多谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
caiyi9000
2001-10-18
打赏
举报
回复
to redeemer:
你是什么水平?CSocket是CAsyncSocket的派生类,当然是异步非阻塞的了!
redeemer
2001-10-17
打赏
举报
回复
非也,其实CSocket是个实实在在的阻塞同步类,这点我想不会有错,否则我也不会在这发愁了,因为我需要它不同步,调用后要能立即返回
redeemer
2001-10-16
打赏
举报
回复
楼上的,抱歉,我为我的鲁莽向你道歉,我以为你是在瞎搅和呢,可谁让你说“CSocket是异步非阻塞”呢?在不了解的情况下我只能凭借这句话来认知你了,当然现在我知道这是不对的了:)我的qq:290487,欢迎常联系,我现在被这个问题搞得心情很不好,抱歉!
caiyi9000
2001-10-16
打赏
举报
回复
to redeemer:
没关系,其实CSocket是CAsyncSOcket类的派生类 ,当然也是异步非阻塞的了!
caiyi9000
2001-10-15
打赏
举报
回复
to redeemer:
顾名思义,CAsyncSocket是一个异步SOCKET类。async就是异步单词的缩写。你知道ATM全称是什么?是什么意思吗?你知不知道用CAsyncSocket定义的对象,就已经是个异步对象了。
CAsyncSOcket m_Socket;
m_Socket.Create(...);
就已经将此socket设置为异步模式,并注册了ACCEPT,CONNECT,WRITE,READ,CLOSES等异步事件,你只要重载CAsyncSocket提供的虚函数OnAccept(), OnConnect(),OnReceive().OnSend(), OnClose()等,就可以响应这些网络异步事件了.具体编程方法如下:
服务器侧,一旦有连接请求到达时,程序就会执行到OnAccept(),在OnAccept()中,你可以调用m_Socket.Accept()接受一个连接请求,并返回一个socket与发起连接请求的客户端进行通信。
客户端侧,当发起一个连接请求时,就会执行到OnConnet()函数,你可以在OnConnect()中做相应处理。
服务器和客户端侧,当网络缓冲区中有网络数据到达时,均会执行到OnReceive()函数中,你就可以调用m_Socket.Recv()函数读取网络缓冲区中的数据了。注意接收网络数据的工作只能在OnReceve()中进行,因为你不知道什么时候有网络到达,只有OnReceive()函数才能通知你的程序有网络数据到达了。
服务器和客户端侧,当你发送网络数据时,均会执行到OnSend()函数,你可以在此函数中做一些发送网络数据时的处理工作。
在OnClose()函数中,你可以做一些通信对端断开后的善后处理工作。
其实如果你对winsock API熟悉的话,你自己都可以用SDK开发出一个CAsyncSocket类来。
如果你还不明白的话,请你到开发文档中看看我发表的文章《Windows网络编程经典入门》。否则不要在此乱咬人!
caiyi9000
2001-10-15
打赏
举报
回复
to redeemer:
我还没见过象你这样的笨蛋,还需要什么回调函数?先回家问问老婆!
redeemer
2001-10-15
打赏
举报
回复
caiyi9000,你回家看看说在来!
skyonsky,光说不练的家伙!
scklotz,好用在哪?听说CAsyncSocket需要一个回调参数才能实现异步,具体怎么做呢?
scklotz
2001-10-15
打赏
举报
回复
CAsyncSocket很好用。
接收数据在OnReceive里处理,发送数据就直接调用Send
skyonsky
2001-10-15
打赏
举报
回复
CSocket 是CAsyncSocket的派生类吧,CAsyncSocket当然可以做CSocket的工作
不过你的水平的相当高才行。
哈哈
caiyi9000
2001-10-15
打赏
举报
回复
有没有搞错,CSocket是异步非阻塞的吧!
各种关于
CA
sync
Socket
,C
Socket
内幕及其用法
Socket
API,
CA
sync
Socket
,C
Socket
内幕及其用法 MFC下C
Socket
编程详解 异步套接字基础
CA
sync
Socket
及C
Socket
MFC疑难注解 利用MFC的C
socket
类实现网络通信
CA
Sync
Socket
类和C
Socket
类编程
CA
sync
Socket
与C
Socket
的区别
### MFC中的
CA
sync
Socket
与C
Socket
:网络编程的核心区别 #### 一、核心概念解析 **MFC(Microsoft Foundation Classes)** 是一套由微软提供的类库,主要用于简化Windows应用程序的开发过程。在MFC中,`...
CA
sync
Socket
,C
Socket
的使用方法
在深入探讨
CA
sync
Socket
与C
Socket
的使用方法之前,我们首先需要理解这两种
Socket
类的基本概念以及它们在异步通信中的作用。
CA
sync
Socket
和C
Socket
是MFC(Microsoft Foundation Classes)框架中用于处理网络通信的类...
Socket
,
CA
sync
Socket
,C
Socket
介绍
###
Socket
、
CA
sync
Socket
、C
Socket
介绍 在计算机网络通信领域中,
Socket
是一种用于在网络间进行数据传输的重要机制。
Socket
技术是构建网络应用程序的基础,它为应用程序提供了低层的数据传输服务。本文将深入...
MFC疑难注解:
CA
sync
Socket
及C
Socket
以至于大多数用 VC 编写的功能稍复杂的网络程序,还是使用 API 的。故
CA
sync
Socket
及 C
Socket
事实上成为疑难,群众多敬而远之。
CA
sync
Socket
和 C
Socket
的区别在于,前者是异步通信,后者是同步通信;前者...
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章