TCP和UDP区别
这两种传输方式都在实际的网络编程中使用,重要的数据一般使用TCP方式进行数据传输,而大量的非核心数据则可以通过UDP方式进行传递,在一些程序中甚至结合使用这两种方式进行数据传递。
由于TCP需要建立专用的虚拟连接以及确认传输是否正确,所以使用TCP方式的速度稍微慢一些,而且传输时产生的数据量要比UDP稍微大一些。
UDP是无连接的,不可靠传输,不使用流量控,支持一对一,一对多,多对一和多对多交互通信,面向报文,首部开销小,仅8字节适用于实时应用(IP电话、视频会议、直播等)
TCP面向连接,可靠传输,使用流量控制靠和拥塞控制,只能是一对一通信,面向字节流,首部最小20字节,最大60字节,适用于要求可靠传输的应用,例如文件传输。
视频会议、直播等)
总结:
TCP是面向连接的,传输数据安全,稳定,效率相对较低。
UDP是面向无连接的,传输数据不安全,效率较高。
网络字节序与主机字节序的转换函数实践
四个转换函数:htonl(), ntohl(), htons(), ntohs()
在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数。
网络字节顺序与本地字节顺序之间的转换函数:
htonl()–“Host to Network Long”
ntohl()–“Network to Host Long”
htons()–“Host to Network Short”
ntohs()–“Network to Host Short”