CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

关于winsock的几个初级问题?

楼主rfa20()2001-04-08 17:53:00 在 VC/MFC / 基础类 提问

onreceive,   onconnect,   onsend   这几个函数怎么用的?    
  我看的书中没有对他作介绍,刚开始学请讲解,谢谢 问题点数:70、回复次数:16Top

1 楼zhaowuqing(我尽力而为)回复于 2001-04-08 18:23:00 得分 0

看MSDN啊,有例子的啦Top

2 楼ggyy(带着一堆光棍找朋友!)回复于 2001-04-08 18:40:00 得分 30

onreceive//通知套接字,存在有要调用receive()函数的接受数据  
  onconnect//当通知连接的套接字连接操作完毕,无论是否成功  
  onsend   //缓冲区有数据可发送,通知套接字可以调用send()发送数据  
  Top

3 楼rfa20()回复于 2001-04-08 19:02:00 得分 0

还有onacceptTop

4 楼ggyy(带着一堆光棍找朋友!)回复于 2001-04-08 19:13:00 得分 0

onaccept   //告诉监听的套接字,可以调用Accept()来连接挂起的连接请求  
  onclose()//通知套接字连接对方已经关闭了Top

5 楼rfa20()回复于 2001-04-08 20:03:00 得分 0

我还是有点糊涂。  
   
  是不是我在程序中声明一个套接字,上面几个函数就开始生效了?  
  例如:  
                mysocket       ms;           mysocket   是派生的csocket类。  
   
  Top

6 楼ggyy(带着一堆光棍找朋友!)回复于 2001-04-08 20:34:00 得分 0

你要调用舰艇函数:  
  ms.listen();//服务器,字要一打开就开始生效  
  mysocket     msclient;  
  msclient.connect(....);//申请连接  
   
  然后服务器就监听到了连接请求  
   
  Top

7 楼rfa20()回复于 2001-04-08 21:13:00 得分 0

请各位再讲一下:  
  顺序是不是:  
   
                    mysocket   ms;  
                    on***();  
                      。。。     on开头的函数开始生效。  
   
                  ms.listen()     or     ms.connect()  
  是不是这样的顺序呢?  
   
  我还是有点不清楚    
   
                      connect()     和     onconnect   ()的区别,他们都是谁调用的?  
  connect是套接字调用。那   on***()呢?Top

8 楼rfa20()回复于 2001-04-08 21:15:00 得分 0

再加   50分。  
  我看书里写的,感觉有点糊涂,请各位讲清楚,谢谢Top

9 楼ggyy(带着一堆光棍找朋友!)回复于 2001-04-08 21:23:00 得分 20

on****()是靠消息来调用的  
  比如说你要听电话:  
  电话相声就是相当与消息;没有人调用(你可以重载)  
  你接电话就相当与执行了accept();  
  后台消息!!!  
  Top

10 楼rfa20()回复于 2001-04-10 14:43:00 得分 0

!Top

11 楼rfa20()回复于 2001-04-11 23:56:00 得分 0

?Top

12 楼rfa20()回复于 2001-04-11 23:57:00 得分 0

还是有点不明白,我已经糊涂了。Top

13 楼rfa20()回复于 2001-04-18 20:53:00 得分 0

?Top

14 楼intoash(化为灰烬)回复于 2001-04-18 21:36:00 得分 20

这几个函数是消息处理函数,不是给你的程序调用的,而是由windows来调用.当有连接请求到来时windows会调用onaccept(),你可以重载这个函数,在函数中调用connect()建立连接.Top

15 楼eggplant(拉拉)回复于 2001-04-20 10:42:00 得分 0

偶个人认为这几个函数的流程是这样的:  
   
  服务方                                           客户方  
  Create();Bind();                 Create();  
  Listen();                                 Connnect();//会返回一个正常错误WSAEWOULDBLOCK。  
   
  //当客户Connect()时,服务方会收到一个连接请求,  
  //这时系统会调用你重载的OnAccept函数,  
  //处理客户端的连接请求  
  OnAccept();  
   
                                                    //处理完后,服务方发送响应,这时客户方将  
                                                    //在重载的OnConnect函数,判断连接是否建立成功  
                                                                OnConnect();  
   
                                                    //建立成功后,可以调用OnSend发送数据,你必须重载OnSend函数  
                                                //并且必须在OnSend()中调用Send发送数据(这是比较地道的方法)  
                                                                  OnSend();  
   
  //服务方,会收到一个OnReceive请求,必须重载OnReceivce函数,  
  //在函数中使用Receive接受来自客户端的数据  
  OnReceive();  
   
  Close();  
   
                                                                          //客户在OnClose中,处理关闭连接请求  
                                                                                              OnClose();Top

16 楼w8u(晌马)回复于 2001-04-26 03:52:00 得分 0

to   eggplant(拉拉):  
  你讲得好清楚啊.谢谢你.能举例说明吗?我代他给你分.Top

相关问题

  • 问几个初级问题
  • 问几个初级问题
  • 几个初级问题?
  • 问几个初级问题,白给分!
  • 几个比较初级的问题:)
  • 初级问题,几个定义语句
  • 几个directX的初级问题
  • 关于Struts的几个初级问题
  • 问几个rational 的初级问题.
  • 问大家几个初级问题!

关键词

  • 函数
  • 连接
  • 数据
  • 客户
  • 消息
  • 调用
  • 重载
  • onsend
  • 请求
  • onconnect

得分解答快速导航

  • 帖主:rfa20
  • ggyy
  • ggyy
  • intoash

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo