socket: 阻塞,非阻塞,同步,异步,我要胡涂了,谁帮我清理一下思路? socket:阻塞,非阻塞,同步,异步,我要胡涂了,谁帮我清理一下思路? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看<windows网络编程技术> 第8章 I/O模型, 讲的很清楚。 我是看了,看来看去,绕到里面出不来了xuying() 能否简单的区分一下? 阻塞比如 recv(........),这个函数就是阻塞函数,只有读到数据了才会返回还有 accept(.......)这个函数也是阻塞函数,只有客户端连接上来了才会返回,不然整个程序都停留在accept出现的地方阻塞着,一直等着有客户端连接上来accept返回后才继续执行下去非阻塞就是和上面相反的意思同步也就是和阻塞差不多的意思,当然还有线程里的同步又是另外一个意思了异步和同步相反 To: snsins非阻塞既然不必等待客户连接,那不就是异步的处理思想嘛,为什么不叫异步而是“非阻塞”呢? 同步方式指的是发送方不等接收方响应,便接着发下个数据包的通信方式;而异步指发送方发出数据后,等收到接收方发回的响应,才发下一个数据包的通信方式。 阻塞套接字是指执行此套接字的网络调用时,直到成功才返回,否则一直阻塞在此网络调用上,比如调用recv()函数读取网络缓冲区中的数据,如果没有数据到达,将一直挂在recv()这个函数调用上,直到读到一些数据,此函数调用才返回;而非阻塞套接字是指执行此套接字的网络调用时,不管是否执行成功,都立即返回。比如调用recv()函数读取网络缓冲区中数据,不管是否读到数据都立即返回,而不会一直挂在此函数调用上。在实际Windows网络通信软件开发中,异步非阻塞套接字是用的最多的。平常所说的C/S(客户端/服务器)结构的软件就是异步非阻塞模式的。 PropertySheet this指针为空?在线等~谢谢 如何在用户界面线程里退出线程? 如何在程序中给STATIC控件赋值? 视频图像的分割问题求助 SDK程序中,添加了垂直滚动条,出现这个问题,程序很简单: 两个界面之间数据的互相调用 c++builder的问题 如何得到mp3文件的流? 请教关于vc++中设置问题 我想学vc,但不知怎么入门,可以帮帮我吗? vptr和vtble的问题!~ 关于html的一句话问题
我是看了,看来看去,绕到里面出不来了xuying() 能否简单的区分一下?
比如 recv(........),这个函数就是阻塞函数,只有读到数据了才会返回
还有 accept(.......)这个函数也是阻塞函数,只有客户端连接上来了才会返回,不然整个程序都停留在accept出现的地方阻塞着,一直等着有客户端连接上来accept返回后才继续执行下去非阻塞就是和上面相反的意思同步也就是和阻塞差不多的意思,当然还有线程里的同步又是另外一个意思了
异步和同步相反
阻塞套接字是指执行此套接字的网络调用时,直到成功才返回,否则一直阻塞在此网络调用上,比如调用recv()函数读取网络缓冲区中的数据,如果没有数据到达,将一直挂在recv()这个函数调用上,直到读到一些数据,此函数调用才返回;而非阻塞套接字是指执行此套接字的网络调用时,不管是否执行成功,都立即返回。比如调用recv()函数读取网络缓冲区中数据,不管是否读到数据都立即返回,而不会一直挂在此函数调用上。在实际Windows网络通信软件开发中,异步非阻塞套接字是用的最多的。平常所说的C/S(客户端/服务器)结构的软件就是异步非阻塞模式的。