尽量用自己的理解,一句话解释清楚,想更深了解,请去看百科...


一. 进程与线程区别

    进程:进程包含线程,多个进程间的数据不共享,由系统进行资源分配

    线程:线程归属进程,多个线程间的数据可共享,占用资源相对较小,运行更快


二. 堆与栈区别

    堆:由操作系统自动分配释放,存放函数的值,先进先出 

    栈:一般由程序员分配释放,程序结束时也可用OS回收,分配方式类似于链表,先进后出


三. TCP连接标志:


TCP标志
意义目的
URG
紧急标识重要数据
ACK确认确认连接;对于大多数连接它被打开
PSH发送通知接收方马上发送数据而不是缓冲数据
RST复位复位连接
SYN同步在连接开始期间同步序号
FIN结束当双方说再见时关闭连接

网络字节序与主机字节序
主机字节序就是我们平常说的大端和小端模式:不同的CPU有不同的字节序类型,这些字节序是指整数在内存中保存的顺序,这个叫做主机序。引用标准的Big-Endian和Little-Endian的定义如下:
  a) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
  b) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
网络字节序:4个字节的32 bit值以下面的次序传输:首先是0~7bit,其次8~15bit,然后16~23bit,最后是24~31bit。这种传输次序称作大端字节序。由于TCP/IP首部中所有的二进制整数在网络中传输时都要求以这种次序,因此它又称作网络字节序。字节序,顾名思义字节的顺序,就是大于一个字节类型的数据在内存中的存放顺序,一个字节的数据没有顺序的问题了。
所以:在将一个地址绑定到socket的时候,请先将主机字节序转换成为网络字节序,而不要假定主机字节序跟网络字节序一样使用的是Big-Endian。由于这个问题曾引发过血案!公司项目代码中由于存在这个问题,导致了很多莫名其妙的问题,所以请谨记对主机字节序不要做任何假定,务必将其转化为网络字节序再赋给socket。


不断更新中....