socket: 阻塞,非阻塞,同步,异步,我要胡涂了,谁帮我清理一下思路? socket:阻塞,非阻塞,同步,异步,我要胡涂了,谁帮我清理一下思路? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看<windows网络编程技术> 第8章 I/O模型, 讲的很清楚。 我是看了,看来看去,绕到里面出不来了xuying() 能否简单的区分一下? 阻塞比如 recv(........),这个函数就是阻塞函数,只有读到数据了才会返回还有 accept(.......)这个函数也是阻塞函数,只有客户端连接上来了才会返回,不然整个程序都停留在accept出现的地方阻塞着,一直等着有客户端连接上来accept返回后才继续执行下去非阻塞就是和上面相反的意思同步也就是和阻塞差不多的意思,当然还有线程里的同步又是另外一个意思了异步和同步相反 To: snsins非阻塞既然不必等待客户连接,那不就是异步的处理思想嘛,为什么不叫异步而是“非阻塞”呢? 同步方式指的是发送方不等接收方响应,便接着发下个数据包的通信方式;而异步指发送方发出数据后,等收到接收方发回的响应,才发下一个数据包的通信方式。 阻塞套接字是指执行此套接字的网络调用时,直到成功才返回,否则一直阻塞在此网络调用上,比如调用recv()函数读取网络缓冲区中的数据,如果没有数据到达,将一直挂在recv()这个函数调用上,直到读到一些数据,此函数调用才返回;而非阻塞套接字是指执行此套接字的网络调用时,不管是否执行成功,都立即返回。比如调用recv()函数读取网络缓冲区中数据,不管是否读到数据都立即返回,而不会一直挂在此函数调用上。在实际Windows网络通信软件开发中,异步非阻塞套接字是用的最多的。平常所说的C/S(客户端/服务器)结构的软件就是异步非阻塞模式的。 使用HttpQueryInfo下载文件时,中途关闭下载,再继续连网时应用程序错误退出! treeview的问题,急 点阵字库文件的读取和显示! 求教!程序为什么变的不能调试? 关于DLL的RUNTIME连接 这是怎么回事? 怎么用vc写xml文件? 在线等待,怎样用VC画一个三维的“桶”,来标识数据库容量状态。 在ADO中联SQLSERVER为什么不能使用SQLSERVER中的通配符 为什么我编的程序多次编译运行以后,就出现内存不够用的编译信息?? vptr和vtble的问题!~ 关于html的一句话问题
我是看了,看来看去,绕到里面出不来了xuying() 能否简单的区分一下?
比如 recv(........),这个函数就是阻塞函数,只有读到数据了才会返回
还有 accept(.......)这个函数也是阻塞函数,只有客户端连接上来了才会返回,不然整个程序都停留在accept出现的地方阻塞着,一直等着有客户端连接上来accept返回后才继续执行下去非阻塞就是和上面相反的意思同步也就是和阻塞差不多的意思,当然还有线程里的同步又是另外一个意思了
异步和同步相反
阻塞套接字是指执行此套接字的网络调用时,直到成功才返回,否则一直阻塞在此网络调用上,比如调用recv()函数读取网络缓冲区中的数据,如果没有数据到达,将一直挂在recv()这个函数调用上,直到读到一些数据,此函数调用才返回;而非阻塞套接字是指执行此套接字的网络调用时,不管是否执行成功,都立即返回。比如调用recv()函数读取网络缓冲区中数据,不管是否读到数据都立即返回,而不会一直挂在此函数调用上。在实际Windows网络通信软件开发中,异步非阻塞套接字是用的最多的。平常所说的C/S(客户端/服务器)结构的软件就是异步非阻塞模式的。