总结
最后对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!
这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
相信它会给大家带来很多收获:
当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
建立 socket 连接
建立 Socket 连接至少需要一对套接字,其中一个运行于客户端,称为 ClientSocket ,另一
个运行于服务器端,称为 ServerSocket 。
套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。
- 服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的
状态,实时监控网络状态,等待客户端的连接请求。
- 客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。
为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端- - 套接字的地址和端口号,然后就向服务器端套接字提出连接请求。 连接确认:当服
务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接
字的请求,建立一个新的线程,把服务器端套接字的描述发 给客户端,一旦客户端
确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续
接收其他客户端套接字的连接请求。
SOCKET 连接与 TCP
创建 Socket 连接时,可以指定使用的传输层协议,Socket 可以支持不同的传输层协议(TCP
或 UDP),当使用 TCP 协议进行连接时,该 Socket 连接就是一个 TCP 连接。
Socket 连接与 HTTP 连接
由于通常情况下 Socket 连接就是 TCP 连接,因此 Socket 连接一旦建立,通信双方即可开
始相互发送数据内容,直到双方连接断开。但在实际网 络应用中,客户端到服务器之间的
通信往往需要穿越多个中间节点,例如路由器、网关、防火墙等,大部分防火墙默认会关闭
长时间处于非活跃状态的连接而导致 Socket 连接断连,因此需要通过轮询告诉网络,该连
接处于**活跃状态。
而** HTTP 连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户
端向服务器发出请求后,服务器端才能回复数据。
很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。
此时若双方建立的是 Socket 连接,服务器就可以直接将数 据传送给客户端;若双方建立的
是 HTTP 连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,
客户端定时向服务器端发送连接请求, 不仅可以保持在线,同时也是在“询问”服务器是否
有新的数据,如果有就将数据传给客户端。TCP(Transmission Control Protocol) 传输控制
协议
socket 断线重连实现
正常连接断开客户端会给服务端发送一个 fin 包,服务端收到 fin 包后才会知道连接断开。而
尾声
以薪资待遇为基础,以发展为最终目标,要在高薪资的地方,谋求最好的发展!
下面是有几位Android行业大佬对应上方技术点整理的一些进阶资料。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!