当前位置: 首页 > news >正文

Java网络编程深度解析

一、网络编程基础概念

1.1 网络协议分层模型

Java网络编程主要基于TCP/IP协议栈,理解分层模型至关重要:

  • OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
  • TCP/IP四层模型:网络接口层、网络层、传输层、应用层
  • Java主要涉及的层次:传输层(TCP/UDP)和应用层(HTTP/FTP等)

1.2 关键网络概念

  • IP地址:设备的网络标识(IPv4/IPv6)
  • 端口号:0-65535,标识主机上的特定服务
  • Socket:网络通信的端点,IP地址+端口号
  • 协议:TCP(可靠连接)和UDP(无连接)

二、Java网络编程核心API

2.1 Java.net包核心类

// TCP相关
Socket          // 客户端Socket
ServerSocket    // 服务端Socket
// UDP相关
DatagramSocket  
DatagramPacket
// URL处理
URL
URLConnection
HttpURLConnection

2.2 NIO包(New I/O)

ByteBuffer
Channel         // SocketChannel, ServerSocketChannel
Selector        // 多路复用选择器
Charset         // 字符编码处理

三、TCP编程实战

3.1 基础TCP通信实现

服务端代码示例

import java.io.*;
import java.net.*;public class TCPServer {public static void main(String[] args) throws IOException {// 1. 创建ServerSocket,监听指定端口ServerSocket serverSocket = new ServerSocket(8888);System.out.println("服务器启动,等待客户端连接...");// 2. 接受客户端连接Socket clientSocket = serverSocket.accept();System.out.println("客户端连接成功:" + clientSocket.getInetAddress());// 3. 获取输入输出流BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);// 4. 通信循环String request;while ((request = in.readLine()) != null) {System.out.println("收到客户端消息:" + request);String response = "服务器响应:" + request.toUpperCase();out.println(response);}// 5. 关闭资源clientSocket.close();serverSocket.close();}
}

客户端代码示例

import java.io.*;
import java.net.*;public class TCPClient {public static void main(String[] args) throws IOException {// 1. 创建Socket连接服务器Socket socket = new Socket("localhost", 8888);// 2. 获取输入输出流BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));PrintWriter out = new PrintWriter(socket.getOutputStream(), true);// 3. 用户输入处理BufferedReader userInput = new BufferedReader(new InputStreamReader(System.in));System.out.println("请输入消息(输入exit退出):");String userMsg;while ((userMsg = userInput.readLine()) != null) {if ("exit".equalsIgnoreCase(userMsg)) break;// 4. 发送消息并接收响应out.println(userMsg);String response = in.readLine();System.out.println("服务器响应:" + response);}// 5. 关闭连接socket.close();}
}

3.2 多线程TCP服务器

处理多个客户端连接:

import java.io.*;
import java.net.*;public class MultiThreadTCPServer {public static void main(String[] args) throws IOException {ServerSocket serverSocket = new ServerSocket(8888);System.out.println("多线程服务器启动...");while (true) {
http://www.xdnf.cn/news/1050769.html

相关文章:

  • 2025教育趋势:考试答题软件开发如何成为智能教育的核心技术
  • 车载诊断框架 --- TCP window size设置
  • SpringJPA统计数据库表行数及更新频率
  • 微信小程序 按钮点击事件
  • sqli-labs靶场54-65关(次数限制,数据更新)
  • 【Create my OS】6 线程调度
  • logback常用配置
  • 自增id用完怎么办?
  • C# CS_Prj01 串口通信控制台程序
  • Java学习笔记——lambda表达式
  • 【FastAPI高级实战】结合查询参数与SQLModel Joins实现高效多表查询(分页、过滤、计数)
  • 微信开发者工具 插件未授权使用,user uni can not visit app
  • Gartner《Reference Architecture for Federated Analytics》学习心得
  • SAP代理商——哲讯科技,助力企业数字化转型
  • 严格三角形方程组
  • 用c语言实现简易c语言扫雷游戏
  • 解析Buildroot
  • html css js网页制作成品——HTML+CSS+js力学光学天文网页设计(4页)附源码
  • MySQL基础架构
  • 深度学习:PyTorch自动微分模块
  • 【CUDA GPU 支持安装全攻略】PyTorch 深度学习开发者指南
  • AI 社交和AI情绪价值的思考 -延申思考2 -全局记忆
  • MobaXterm首次连接Ubuntu失败
  • Rust语言典型并发模式小结
  • 【Dv3Admin】系统信号机制配置文件解析
  • Photoshop图层蒙版全介绍
  • Go实战项目OneX介绍(2/12):项目功能列表介绍
  • 【编程语言】从C++到Java到Golang,语法特性对比与开发实践指南(基础语法,类型系统,运行机制)
  • 多模态大语言模型arxiv论文略读(123)
  • Go语言--语法基础5--基本数据类型--输入输出(2)