1,C/S通信模型

1.简介 - 图1
TCP本身并不提供记录结束标志:如果应用程序需要确定记录的边界,它就要自己去实现,已有一些常用的方法可供选择。从TCP套接字读取数据时,我们总是需要把read编写在某个循环中,当read返回0(表明对端关闭连接)或负值(表明发生错误)时终止循环。

Unix errno值

  1. errno的值只在函数发生错误时设置。如果函数不返回错误,errno的值就没有定义。errno的所有正数错误值都是常值,具有以“E”开头的全大写字母名字,并通常在<sys/errno.n>头文件中定义。值0不表示任何错误。在全局变量中存放errno值对于共享所有全局变量的多个线程并不适合。

OSI模型

1.简介 - 图2

网络拓扑的发现

·netstat -i提供网络接口的信息。我们还指定-n标志以输出数值地址,而不是试图把它们反向解析成名字。
·netstat –r展示路由表,也是另一种确定接口的方法。我们通常指定-n标志以输出数值地址。它还给出默认路由器的IP地址。
·执行ifconfig就可获得每个接口的详细信息。
·找出本地网络中众多主机的IP地址的方法之一是,针对从上一步找到的本地接口的广播地址执行ping命令。
[

](https://blog.csdn.net/gongluck93/article/details/78796112)