网络编程是 Java 开发中的核心技能之一,它允许程序通过网络与远程设备上的其他程序进行数据交换和通信。无论是构建分布式系统、开发在线服务,还是实现物联网(IoT)设备间的交互,网络编程都扮演着至关重要的角色。
在 Java 中,网络编程主要基于 java.net 包提供的类库,支持 TCP/IP 和 UDP 等主流网络协议。掌握网络编程不仅有助于理解互联网底层工作原理,还能提升开发者构建高可用、高性能网络应用的能力。
在网络应用中,常见的通信架构主要分为两种:C/S 模式 和 B/S 模式。它们各自适用于不同的应用场景,具有独特的优缺点。
Client/Server,客户端 / 服务器模式
C/S 模式是一种典型的两层架构,其中:
客户端(Client):负责用户界面展示和部分业务逻辑处理,需要由程序员专门开发,并且用户必须在本地设备上安装该客户端软件。
服务端(Server):负责核心业务逻辑、数据存储与管理,同样需要程序员开发部署,通常运行在高性能服务器上,可同时为多个客户端提供服务。
客户端启动后向服务端发起连接请求;
服务端监听端口,接收并响应客户端请求;
双方通过 Socket 进行双向数据传输;
通信结束后断开连接或保持长连接。
响应速度快,交互体验好;
可充分利用客户端本地资源(如图形渲染、缓存等);
安全性相对较高,通信协议可自定义加密。
客户端需单独开发和分发,维护成本高;
不同操作系统可能需要不同版本的客户端;
升级时需用户手动更新客户端。
即时通讯软件(如 QQ、微信桌面版);
在线游戏客户端;
企业内部管理系统(如 ERP、CRM)。
Browser/Server,浏览器 / 服务器模式
B/S 模式是 Web 应用的主流架构,其特点为:
浏览器(Browser):作为通用客户端,无需程序员额外开发,用户只需安装标准浏览器(如 Chrome、Firefox)即可访问服务;
服务端(Server):负责处理所有业务逻辑和数据存储,通常由 Web 服务器(如 Tomcat、Nginx)和应用服务器共同构成。
用户在浏览器中输入 URL 或点击链接;
浏览器向服务端发送 HTTP/HTTPS 请求;
服务端处理请求并返回 HTML、JSON 或其他格式数据;
浏览器解析并渲染结果呈现给用户。
客户端零安装、零维护,跨平台兼容性强;
系统升级只需更新服务端,用户无感知;
开发效率高,生态成熟(前端 + 后端分离架构)。
依赖网络连接,离线功能受限;
复杂交互体验不如原生客户端流畅;
安全性需特别注意(如 XSS、CSRF 攻击防护)。
电商平台(如淘宝、京东);
在线办公系统(如钉钉网页版、Google Docs);
新闻资讯网站、社交媒体平台。