参考 <<TCP/IP网络编程>> 伊圣雨
套接字简介
套接字可以连接为计算机为了通信准备的一种标准接口,这个接口函数与操作系统联系紧密,是实现计算机之间通信的重要基础。
TCP 编程
根据TCP的协议我们知道TCP通信的服务端与客户端有比较大的差别。服务端需要先启动并进入监听状态才可以与客户端连接(监听状态listen函数,并且利用accept函数确定与自己建立连接的客户端socket信息)。一旦成功与客户端连接之后,就可以客户端交互数据。
客户端需要先调用connect函数与服务端连接。不论是客户端与服务端都需要调用bind函数将套接字接口与操作系统中相关处理绑定。
UDP编程
UDP协议由于没有连接要求,所以客户端服务端差别不大,都是套接字对套接字的通信。但是每一次套接字通信的数据都要加上接收方的IP地址和端口。
补充比较
UDP与TCP最大的区别在于是否建立连接已经是否进行发送流控制(可靠性)上,TCP做了这些所以TCP数据传输可靠,但是较慢,UDP不做所以UDP较快。两者应用场景不同,UDP适合视频音频的直播信息传送,TCP适合网页 压缩文件等处理。
UDP也可以建立连接,只是为了减少每次都要设置发送目标的地址。
TCP两个进程间通信需要一对套接字对应,UDP不需要。