协议简单来说就是一种标准,传输的标准主要有两种UDP与TCP
TCP:一种面向连接安全可靠的,基于字节流的运输层的传输协议
特点:面向连接,点到点的通信,高可靠性,但占用系统资源多,效率低(要建立连接才可以使用,所以难免占用系统资源较多)
UDP:一无连接的传输层协议,提供面向事务的简单不可靠信息传送服务
特点:非面向连接,传输不可靠,甚至可能会丢失,只管发送,不管对方是否有接收到,可以广播发送,非常简单的协议,开销小,效率高(因为没有建立连接,所以又被拦截的危险,例如寄邮件,你只需要寄送出去,无管对方是否收到你都已经完成任务了,但是这个邮件在路上有可能又被丢失(也就是被拦截)
目前来说,一般都是以这种两种协议的结合
我们开发的网络应用程序位于应用层,TCP和UDP属于传输协议,在应用层次与传输层是用套接字进行分离的
套接字:像是传输层为应用层开的一个小口,应用程序通过这个小口向远程发送或接受数据;而在这个小口内,也就是数据进入这个口后或进入这个口之前,是不知道也不需要知道它是如何传输的(也不需要关心),因为这是属于网络其他层次的工作
SOCKET编程:
基于TCP协议的SOCKET编程 基于UDP协议的SOCKET编程
通信双方需要建立连接 通信双方不需要建立连接
连接时双方存在主次之分
(先建立服务器后建客户端 双方平等