TCP Socket类型

对于许多初学者来说,网络通信程序的开发,普遍的一个现象就是觉得难以入手。许多概念,诸如:同步 (Sync)/ 异步 (Async) ,阻塞 (Block)/ 非阻塞 (Unblock) 等,初学者往往迷惑不清,只知其所以而不知起所以然。

 

同步方式指的是发送方不等接收方响应,便接着发下个数据包的通信方式;而异步指发送方发出数据后,等收到接收方发回的响应,才发下一个数据包的通信方式。

 

          阻塞套接字是指执行此套接字的网络调用时,直到成功才返回,否则一直阻塞在此网络调用上,比如调用 recv() 函数读取网络缓冲区中的数据,如果没有数据到达,将一直挂在 recv() 这个函数调用上,直到读到一些数据,此函数调用才返回;而非阻塞套接字是指执行此套接字的网络调用时,不管是否执行成功,都立即返回。比如调用 recv() 函数读取网络缓冲区中数据,不管是否读到数据都立即返回,而不会一直挂在此函数调用上。在实际 Windows 网络通信软件开发中,异步非阻塞套接字是用的最多的。平常所说的 C/S (客户端 / 服务器)结构的软件就是异步非阻塞模式的

你可能感兴趣的:(数据结构,C++,c,windows,socket)