什么是网络编程
面对一个实际问题的解决思路
首先是要理解问题。解决实际问题的过程起始于对问题的理解。要搞清楚为什么会有这个问题,问题究竟是什么。对于技术人员来说,最终目的是识别出可能要用到的技术点。
然后要对识别出的技术点,做相应的技术预研与储备。怎么做技术预研呢?至少要了解技术诞生的背景、技术的原理、技术能解决哪些问题以及不能解决哪些问题,还有技术的优点与不足,等等。当然,如果没有新技术点,可以忽略这一步。
最后,要基于技术预研和储备的结果,进行解决方案的设计与实现,这个是技术人最擅长的。
# 1. 什么是网络编程
网络编程的范围很大,因为网络是分层的,OSI 规定了七层参考模型,而实际上使用的主流网络模型实现,是 TCP/IP 模型,它只有四层:
更多关注 OSI 网络模型中的传输层(四层)与应用层(七层),也就是 TCP/IP 网络模型中的最上面两层。
TCP/IP 网络模型,实现了两种传输层协议:TCP 和 UDP。TCP 是面向连接的流协议,为通信的两端提供稳定可靠的数据传输服务;而 UDP 则提供了一种无需建立连接就可以发送数据包的方法。
日常开发中使用最多的是 TCP 协议。基于 TCP 协议,实现了各种各样的满足用户需求的应用层协议。
比如,常用的 HTTP 协议就是应用层协议的一种,而且是使用得最广泛的一种。而基于 HTTP 的 Web 编程就是一种针对应用层的网络编程。还可以基于传输层暴露给开发者的编程接口,实现应用层的自定义应用协议。
传输层暴露给开发者的编程接口,目前在各大主流操作系统平台中,最常用的就是套接字(socket)。直接基于 socket 编程实现应用层通信业务,也是最常见的一种网络编程形式,基于socket网络编程。
上次更新: 2022/06/12, 15:48:09