Windows Sockets:套接字通知

2016-02-19 19:14 4 1 收藏

下面请跟着图老师小编一起来了解下Windows Sockets:套接字通知,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

【 tulaoshi.com - 编程语言 】

本文描述套接字类中的通知函数。这些成员函数都是回调函数,框架调用它们将重要事件通知给套接字对象。通知函数有: OnReceive:通过调用 Receive 通知此套接字缓冲区中有需要检索的数据。 !-- frame contents -- !-- /frame contents -- OnSend:通过调用 Send 通知此套接字现在可以发送数据。 OnAccept:通过调用 Accept 通知此侦听套接字可以接受挂起的连接请求。 OnConnect:通知此连接套接字其连接尝试已完成:可能成功,也可能存在错误。 OnClose:通知此套接字它连接的套接字已关闭。 注重: 一个附加的通知函数是 OnOutOfBandData。此通知告诉接收套接字发送套接字有“带外”数据要发送。带外数据是逻辑上独立的通道,与每一对已连接的流式套接字关联。带外通道通常用于发送“紧急”数据。MFC 支持带外数据。使用 CAsyncSocket 类的高级用户可能需要使用带外通道,但 CSocket 类的用户最好不要使用它。更简便的方法是创建另一个套接字来传递这种数据。有关带外数据的更多信息,请参见 Platform SDK 中的 Windows Sockets 规范。 假如从 CAsyncSocket 类派生类,则必须为应用程序感爱好的网络事件重写通知函数。假如从 CSocket 类派生类,则可以选择是否重写感爱好的通知函数。也可以使用 CSocket 自身,在此情况下,通知函数默认不执行任何操作。 这些函数都是可重写的回调函数。 CAsyncSocket 和 CSocket 将消息转换成通知,但假如希望使用通知函数,则必须实现它们的响应方式。当套接字被通知有感爱好的事件(如存在要读取的数据)时,调用通知函数。 MFC 调用通知函数以答应您在套接字被通知时自定义其行为。例如,您可能从 OnReceive 通知函数调用 Receive ,即,当获得有要读取的数据的通知时,可调用 Receive 读取该数据。这种方法不是必需的,但它是一个有效的方案。另一种办法是,可以使用通知函数来跟踪进度、打印 TRACE 消息等。 可以通过在派生的套接字类中重写通知函数并提供实现来利用这些通知。有关实现示例,请参见 MFC 示例 CHATTER 和 CHATSRVR 中的通知函数重写。 在如接收或发送数据的操作过程中, CSocket 对象变为同步。在同步状态中,当前套接字等待它想要的通知的同时,对应其他套接字的通知都排队等候。(例如,在 Receive 调用过程中,套接字想要读取通知)。一旦套接字完成其同步操作并再次变为异步时,其他套接字才能开始接收排队的通知。 注重: 在 CSocket 中,永远都不调用 OnConnect 通知函数。对于连接,则调用 Connect ,它将在连接完成时返回(成功或者错误)。如何处理连接通知是 MFC 实现的细节。 有关每个通知函数的具体信息,请参见“MFC 参考”中 CAsyncSocket 类下的该函数。有关 MFC 示例的源代码和信息,请参见 MFC 示例。 有关更多信息,请参见: Windows Sockets:使用 CAsyncSocket 类 Windows Sockets:从套接字类派生 Windows Sockets:带存档的套接字的工作方式 Windows Sockets:阻塞 Windows Sockets:字节排序 Windows Sockets:转换字符串 更多内容请看Windows操作系统安全集  Windows操作系统安装  Windows频道专题,或

来源:http://www.tulaoshi.com/n/20160219/1620386.html

延伸阅读
C#是微软随着VS.net新推出的一门语言。它作为一门新兴的语言,有着C++的强健,又有着VB等的RAD特性。而且,微软推出C#主要的目的是为了对抗Sun公司的Java。大家都知道Java语言的强大功能,尤其在网络编程方面。于是,C#在网络编程方面也自然不甘落后于人。本文就向大家介绍一下C#下实现套接字(Sockets)编程的一些基本知识,以期能使大家...
同步客户端套接字示例   下面的示例程序创建一个连接到服务器的客户端。该客户端是用同步套接字生成的,因此挂起客户端应用程序的执行,直到服务器返回响应为止。该应用程序将字符串发送到服务器,然后在控制台显示该服务器返回的字符串。 C# using System; using System.Net; using System.Net.Sockets; usin...
使用sockets Socket控件让你建立一个利用TCP/IP和有关的协议与其他系统进行通信的应用。使用Sockets,你能够读和写通过它连接的其他机器,而不用担心实际的网络软件的相关细节。Sockets提供基于TCP/IP协议的连接。除此以外还能很好的工作,在其他相关的协议,例如Xerox Network System (XNS), Digital's DEC net, or Novell's IPX/S...
1、引言 网络监听工具(sinff)是提供给网络管理员的一类管理工具。在以太网中(Ethernet),当网络上连接多台计算机时,某瞬间只能有一台计算机可以传送数据。以太网中,数据是以被称为帧的数据结构为单位进行交换的。通常,在计算机网络上交换的数据结构体的单位是数据包。而在以太网中则称为帧。这种数据包是由记录着数据包发送给...
标签: 电脑入门
图示:Win8界面右上角的通知对话框 首先我们打开Windows 8的控制面板,选择轻松使用。 图示:在Windows 8控制面板中选择轻松使用 在Win8轻松使用窗口中选择轻松使用设置中心。 图示:选择轻松使用设置中心 在Win8的轻松使用设置中心里,我们可以看到放大镜、启用讲述人、启用屏幕键盘,设置高对比度等功能,向下拉动滚动条,选择...