很早就开始接触了socket网络编程了,至今已经写了不少的相关代码,写起来也比较顺畅,仍然感觉socket还有很多的机制并没有理解,而且由于对socket的底层实现机制有一种“不信任“的疑问,所以总想研究一下socket的底层实现机制。在这一系列的博文中,我将会抛砖引玉谈一下我在学习socket编程中的一些体会以及一些网络编程必须要了解的主题与大家探讨。
下面我列出整理的一些相关socket的一些可能存在的疑问:
1.socket的发送缓冲区与接收缓冲区的概念。
2.socket的相关函数与TCP三次握手四次挥手状态的对应关系。
3.socket进程的状态,例如TIME_WAIT等。
4.socket中提供的recv,send与WSARecv以及WSASend的联系与区别。
5.socket中的同步与异步,阻塞与非阻塞的概念以及具体表现。
6.socket网络编程中的IO模型(包括阻塞的和非阻塞的),例如:重叠IO和完成端口。
7.网络字节序与主机字节序之间的转换。
8.socket底层实现机制。