`
oyc56oyc
  • 浏览: 10375 次
社区版块
存档分类
最新评论

sock编程技术

 
阅读更多

sock编程技术
2010年08月09日
  同步,阻塞,异步,非阻塞异同
  所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回;
  异步的概念和同步相对,当一个异步过程调用发出后,调用者不能立刻得到结果,实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。以 CAsycSocket类为例(注意,CSocket从CAsyncSocket派生,但是起功能已经由异步转化为同步),当一个客户端通过调用 Connect函数发出一个连接请求后,调用者线程立刻可以朝下运行,当连接真正建立起来以后,socket底层会发送一个消息通知该对象。
  阻塞调用是指调用结果返回之前,当前线程会被挂起,函数只有在得到结果之后才会返回。阻塞调用和同步调用是不同的,同步调用,很多时候当前线程还是激活的,只是从逻辑上当前函数没有返回而已。例如,我们在CSocket中调用Receive函数,如果缓冲区中没有数据,这个函数就会一直等待,直到有数据才返回。而此时,当前线程还会继续处理各种各样的消息。如果主窗口和调用函数在同一个线程中,除非你在特殊的界面操作函数中调用该函数,否则主界面还是可以刷新。
  非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。
分享到:
评论

相关推荐

    sock编程详细描述sock

    本书适应了Windows、Internet及计算机网络普及的潮流,介绍了一套在Windows下网络编程的规范-Windows Sockets。... 本书体系完整,文字流畅,可供从事网络应用开发的工程技术人员和大专院校师生参考。

    多线程编程

    多线程编程 给出了相应的实例,值得一看 sock编程技术

    linuxsock_raw原始套接字编程.pdf

    linuxsock_raw原始套接字编程.pdf

    socket编程(源码)

    本资料提供的是用Socket编程实现聊天程序。 有两种:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,...

    vc socket 编程

    sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。 在这个程序中,将两个工程添加到一个工作区。要链接一...

    VC MFC Socket编程.rar

    VC MFC Socket编程,这里面不至一个例子,最后做出了一个简单的MFC Socket 聊天室例子,来进一步演示MFC Socket编程的技术细节,对于VC 初学者是非常不错的参考范例。  CDialog::OnInitDialog();  CSocket sock...

    基于SOCK盯编程实现的组态软件与控制器的网络通讯

    0 引言  组态软件是面向工程监控和...本文在基于TCP/IP网络协议和SOCKET接口技术的基础上,介绍了基于IEC61131-3标准的组态软件通讯模块的设计与实现方法。  1 通信模块功能  组态监测系统分为控制器和工程

    实验7 网络程序设计综合实验

    过程中加深对相关知识的掌握和对网络编程技术的理解。 3实验内容 实验题目一:网络聊天程序设计(可选) 实验要求 1、分析典型网络聊天应用软件(如QQ、MSN等)的实现原理,模拟设计一套网络聊 天应用程序,必须...

    基于socket实现Ping功能的源代码

    基于socket的网络编程技术,用到SOCK_RAW的原始套接字类型。里面对简单ICMP协议和IP协议有着很完整的诠释和定义。可以交流zhaquanmin@163.com

    用c++编写网络流量统计系统

    为了让原始套接字能接受所有的数据,还需要通过将SOCK_RAW设置成SIO_RCVALL。对数据包的获取通过recv()函数来完成。最后要完成的工作就是对所捕获的IP数据包进行分析以提取出我们所需要的信息。在论文的最后是旨在...

    WIN C SDK + WIN SOCKET接口写的一个SERVER跟CLIENT.

    使用全C+WIN SOCK写的一个C/S通信模型,没用使用MFC那些,SERVER采用异步SOCK,客户端采用同步SOCK方式写的,全部源码都已经附上. SERVER端使用了一个窗口高级技术,都是用C SDK写的,很容易可以看到.整个代码量稍多一点. ...

    linux网路编程 中文 23M 版

    第2 章Linux编程环境....................................................................................................14 2.1 Linux环境下的编辑器................................................. 14 ...

    python使用多线程+socket实现端口扫描

    本文实例为大家分享了python实现端口扫描的具体代码,供大家参考,具体内容如下 今天老师上课说的内容,使用多线程+socket写一个端口扫描器 写的些许潦草,也没注释,不过问题不大,应该都能看懂 ...

    TCP/IP详解(卷一)

    也适用于研究网络的技术人员。 作者简介 W.Richard Stevens(1951-1999)是一位非常受人尊敬的专家,除了《TCP/IP详解》三卷本外,他还有其他两部最为畅销的作品:《UNIX环境高级编程》和《UNIX网络编程》(两卷本...

    基于java的局域网聊天系统-毕业设计.doc

    开发技术 Socket 的编程模型如图1所示。 图1 Socket 的编程模型 字节流套接字(Stream Socket) 是最常用的套接字类型,TCP/IP协议族中的 TCP 协议使用此类接口。字节流套接口提供面向连接的、无差错的、发送先后...

    用C自己编写端口扫描软件

    这个软件没有使用到多线程技术,也就不用考虑那么多的关于多线程的概念了。因此我们的这个扫描软件从两个方面来讨论,第一方面是如何可以找到打开的端口,第二方面是如何提高扫描端口的速度。 一、找到打开的端口 ...

    vc++ 应用源码包_3

    IOCP 完成端口编程技术 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++加密解密算法库(CRYPT++) 详细讲解了Crypt++的加密解密的使用...

    vc++ 应用源码包_1

    《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++加密解密算法库(CRYPT++) 详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法...

    vc++ 应用源码包_6

    《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++加密解密算法库(CRYPT++) 详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法...

Global site tag (gtag.js) - Google Analytics