socket:通过网络完成进程间通信的方式,socket也被称作 ‘套接字’
Socket本质是编程接口(API):Socket是对TCP/IP协议的封装,Socket只是编程接口不是协议,通过Socket我们才能使用TCP/IP协议簇。
TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。
Socket是面向客户/服务器模型设计的,针对客户和服务器程序提供了不同的Socket系统调用。
套接字之间的连接过程可以分为三个步骤:服务器监听、客户端请求、连接确认
创建socket
UDP和TCP
UDP(User Data Protocol):用户数据包协议,是一个无连接的简单的面向数据报的传输层协议;UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但并不能保证它们一定能到达目的地;由于UDP在传输数据报之前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,所以传输速度很快
UDP一般用于多点通信和实时的数据业务,比如:
1.语音广播
2.视频
3.微信/qq
4.简单文件传输
TCP(Transmission Control Protocol):传输控制协议,是面向连接的协议,在收发数据之前,必须和对方建立可靠的连接
一个TCP连接必须要经过 ‘三次对话’ 才能建立起来,过程非常复杂,此处只简单的描述三次对话的过程:
1.主机A向主机B发出连接请求数据包
2.主机B向主机A发送同意连接和要求同步的数据包
3.主机A再次发送一个数据包确认主机B的要求同步
三次对话结束后,连接建立完成,双方就可以进行收发数据了
echo服务器
Echo服务是一种非常有用的用于调试和检测的工具,这个协议的作用也十分简单,接收到什么原封发回。
网友评论