TCP/UDP对比
1.TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接。
2.TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
3.TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
UPD没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时时评会议等)
4.每一条TCP连接只能是点到点的,UPD支持一对一,一对多,多对一和多对多的交互通信
5.TCP首部开销20字节;UPD的首部开销小,只有8个字节
6.TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
端口号作用
一台拥有IP地址的主机可以提供许多服务,比如web服务,FTP服务,SMTP服务等
这些服务完全可以通过1个IP地址来实现。那么,主机是怎么区分不同的网络服务呢?显然不能只靠IP地址,因为IP地址与网络服务的关系是一对多的关系。
实际上是通过“IP地址+端口号”来区分不同的服务的。
端口提供了一种访问通道,
服务器一般都是通过知名端口号来识别的。例如,对于每个TCP/IP实现来说,FTP服务器的TCP端口号都是21,每个Telnet服务器的TCP端口号都是23,每个TFTP(简单文件传送协议)服务器的UDP端口号都是69
字节序
字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序
常见序
1.little endian :将低序字节存储在起始地址
2.big endian :将高序字节存储在起始地址
网络字节序=大端字节序
例子:
在内存中双字0x01020304的存储方式
内存地址
4000&4001&4002&4003
LE 04 03 02 01
BE 01 02 03 04
Socket服务器和客户端的开发步骤
1.创建套接字
2.为套接字添加信息(IP地址和端口号)
3.监听网络连接
4.监听到有客户端接入,接受一个连接
5.数据交互
6.关闭套接字,断开连接