socket-环信 number one
socket “套接字”
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为socket。
应用程序通常通过”套接字“向网络发出请求或者应答网络请求。
客户端 socket --------通信管道-------- socket 服务器 socket为隧道的端口
客户端发送网络请求,服务器端响应网络请求。
网络上的请求就是通过Socket来建立连接然后互相通信
IP地址(网络上主机设备的唯一标识)
端口号:(定位程序)
用于标识进程的逻辑地址,不同进程的标示。
有效端口:(0---65535),其中0-1024由系统使用或者保留端口,开发中建议使用1024以上的端口。
传输协议(用什么样的方式交互)通讯规则和协议
tcp:传输控制协议
一:建立连接,形成传输数据的通道
二:在连接中进行大数据传输(数据大小不受限制)
三:通过三次握手完成连接,是可靠协议,安全送达 客户和服务端三次握手数据的安全性和可靠性。例如打电话。拨手机号码,对面响应,然后我收到响应也回复。
四:必须建立连接,效率会稍低。
udp:用户数据报协议
将数据及源和目的封装成数据包中,不需要建立连接。每个数据报的大小限制在64k之内,因为无需连接,是不可靠协议,不需要建立连接,速度快。
http底层就是socket建立通信管道,实现数据传输。HTTP是一个TCP的传输协议(方式),他是一个可靠、安全的协议
socket流程:
TCP客户端:socket()->connect->write()【写请求】->read->close. 两者是可以建立连接,请求数据,回应数据,接受连接
TCP服务端:socket ->bind()[绑定端口]->listen()[监听端口是否有人连接]->accept()->阻塞直到客户端连接 ->read()【读客户端请求】->处理请求->write()->read()->close()