源本科技 | 码上会

网络编程概述

2026/03/04
32
0

引言

网络编程是 Java 开发中的核心技能之一,它允许程序通过网络与远程设备上的其他程序进行数据交换和通信。无论是构建分布式系统、开发在线服务,还是实现物联网(IoT)设备间的交互,网络编程都扮演着至关重要的角色。

在 Java 中,网络编程主要基于 java.net 包提供的类库,支持 TCP/IP 和 UDP 等主流网络协议。掌握网络编程不仅有助于理解互联网底层工作原理,还能提升开发者构建高可用、高性能网络应用的能力。


通信模式

在网络应用中,常见的通信架构主要分为两种:C/S 模式B/S 模式。它们各自适用于不同的应用场景,具有独特的优缺点。

C/S 模式

Client/Server,客户端 / 服务器模式

基本概念

C/S 模式是一种典型的两层架构,其中:

  • 客户端(Client):负责用户界面展示和部分业务逻辑处理,需要由程序员专门开发,并且用户必须在本地设备上安装该客户端软件。

  • 服务端(Server):负责核心业务逻辑、数据存储与管理,同样需要程序员开发部署,通常运行在高性能服务器上,可同时为多个客户端提供服务。

工作流程

  1. 客户端启动后向服务端发起连接请求;

  2. 服务端监听端口,接收并响应客户端请求;

  3. 双方通过 Socket 进行双向数据传输;

  4. 通信结束后断开连接或保持长连接。

优点

  • 响应速度快,交互体验好;

  • 可充分利用客户端本地资源(如图形渲染、缓存等);

  • 安全性相对较高,通信协议可自定义加密。

缺点

  • 客户端需单独开发和分发,维护成本高;

  • 不同操作系统可能需要不同版本的客户端;

  • 升级时需用户手动更新客户端。

典型应用场景

  • 即时通讯软件(如 QQ、微信桌面版);

  • 在线游戏客户端;

  • 企业内部管理系统(如 ERP、CRM)。


B/S 模式

Browser/Server,浏览器 / 服务器模式

基本概念

B/S 模式是 Web 应用的主流架构,其特点为:

  • 浏览器(Browser):作为通用客户端,无需程序员额外开发,用户只需安装标准浏览器(如 Chrome、Firefox)即可访问服务;

  • 服务端(Server):负责处理所有业务逻辑和数据存储,通常由 Web 服务器(如 Tomcat、Nginx)和应用服务器共同构成。

工作流程

  1. 用户在浏览器中输入 URL 或点击链接;

  2. 浏览器向服务端发送 HTTP/HTTPS 请求;

  3. 服务端处理请求并返回 HTML、JSON 或其他格式数据;

  4. 浏览器解析并渲染结果呈现给用户。

优点

  • 客户端零安装、零维护,跨平台兼容性强;

  • 系统升级只需更新服务端,用户无感知;

  • 开发效率高,生态成熟(前端 + 后端分离架构)。

缺点

  • 依赖网络连接,离线功能受限;

  • 复杂交互体验不如原生客户端流畅;

  • 安全性需特别注意(如 XSS、CSRF 攻击防护)。

典型应用场景

  • 电商平台(如淘宝、京东);

  • 在线办公系统(如钉钉网页版、Google Docs);

  • 新闻资讯网站、社交媒体平台。


C/S 与 B/S

对比维度

C/S 模式

B/S 模式

客户端要求

需定制开发并安装

使用通用浏览器,无需安装

跨平台性

较差,需针对不同系统开发

极好,任何支持浏览器的设备均可访问

维护成本

高,需同步更新各客户端

低,仅需更新服务端

用户体验

交互丰富,响应迅速

受限于浏览器能力,略逊一筹

安全性

可控性强,可自定义协议

需防范常见 Web 安全漏洞

适用场景

高性能、高交互需求的专业应用

大众化、易部署的互联网服务