这个题目不好回答,因为他牵扯东西比较多,问的方向比较广,我尽量发散说,如果里面遇到你不知道知识点,那么你需要自己查阅里面你不清楚点。
Socket是什么?
· TPC/IP协议是传输层协议,主要解决数据如何在网络中传输;
· Socket是对TCP/IP协议的封装和应用(程序员层面上);
· 而HTTP是应用层协议,主要解决如何包装数据。
TCP/IP和HTTP协议的关系是:“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容。如果想要使传输的数据有意义,则必须使用到应用层协议。应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。”
Socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API)。通过Socket,我们才能使用TCP/IP协议。
Socket跟TCP/IP协议关系是:“TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。这个就像操作系统会提供标准的编程接口,比如win32编程接口一样,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。”
这样回答肯定不行:你肯定说说建立socket的基本流程
可以看到本质上,socket是对tcp连接(当然也有可能是udp等其他连接)协议,在编程层面上的简化和抽象。
要想深刻理解socket必须要有:网络七层,每一层有一个了解,在应用层,传输层,网络层这三层要熟悉不是了解了。
下面这些也了解一下:
1、单向通信
2、双向通信
3、同时实现消息的发送与接收
4、使用线程池优化服务端并发能力
5、连接保活(心跳包,断开时重连)
6、三次握手,四次挥手过程描述
更多关于“Java培训”的问题,欢迎咨询千锋教育在线名师。千锋已有十余年的培训经验,课程大纲更科学更专业,有针对零基础的就业班,有针对想提升技术的好程序员班,高品质课程助理你实现java程序员梦想。