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

【学习总结|DAY022】Java网络编程

网络编程是Java开发中非常重要的一环,它允许程序与网络上的其他设备进行数据交互。本文将介绍Java网络编程的基础知识,包括网络编程三要素、UDP和TCP通信协议,以及BS架构的原理。

网络编程三要素

网络通信至少需要三个要素:IP地址、端口号和协议。

  • IP地址:类似于门牌号码,用于标识网络上的设备。
  • 端口号:用于标记计算机设备上运行的应用程序。
  • 协议:规定连接和传输数据的规则。

UDP通信

UDP(用户数据报协议)是一种无连接、不可靠的通信协议。它将数据封装成数据包发送,不保证数据传输的可靠性,但通信效率高,适用于视频直播、语音通话等场景。

UDP通信实现

  • 客户端:创建DatagramSocket对象,使用send方法发送数据包。
  • 服务端:创建DatagramSocket对象并指定端口,使用receive方法接收数据包。

代码示例

// UDP客户端
DatagramSocket socket = new DatagramSocket();
String message = "Hello, server!";
InetAddress address = InetAddress.getByName("127.0.0.1");
DatagramPacket packet = new DatagramPacket(message.getBytes(), message.length(), address, 8888);
socket.send(packet);
socket.close();

// UDP服务端
DatagramSocket socket = new DatagramSocket(8888);
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
socket.receive(packet);
String message = new String(packet.getData(), 0, packet.getLength());
System.out.println("Received message: " + message);
socket.close();

TCP通信

TCP(传输控制协议)是一种面向连接、可靠的通信协议。它通过三次握手建立连接,传输数据进行确认,四次挥手断开连接,确保数据传输的可靠性,但通信效率相对较低,适用于网页浏览、文件下载等场景。

TCP通信实现

  • 客户端:创建Socket对象,连接到服务端,使用getOutputStream方法发送数据,使用getInputStream方法接收数据。
  • 服务端:创建ServerSocket对象,监听端口,使用accept方法接收客户端连接,使用getInputStream方法接收数据,使用getOutputStream方法发送数据。

代码示例

// TCP客户端
Socket socket = new Socket("127.0.0.1", 8888);
OutputStream out = socket.getOutputStream();
String message = "Hello, server!";
out.write(message.getBytes());
socket.close();

// TCP服务端
ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept();
InputStream in = socket.getInputStream();
byte[] buffer = new byte[1024];
int length = in.read(buffer);
String message = new String(buffer, 0, length);
System.out.println("Received message: " + message);
socket.close();
serverSocket.close();

BS架构的原理

BS架构(Browser/Server)是指浏览器/服务端架构。客户端使用浏览器发起请求,服务端按照HTTP协议响应数据,例如:

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8

<html>
<head>
<title>Example</title>
</head>
<body>
Hello, World!
</body>
</html>

总结

本文介绍了Java网络编程的基础知识,包括网络编程三要素、UDP和TCP通信协议,以及BS架构的原理。希望读者能够通过本文的学习,掌握Java网络编程的基本技能。

请注意:本文仅为学习笔记,代码示例仅供参考,实际开发中可能需要根据具体情况进行调整。


http://www.kler.cn/a/447647.html

相关文章:

  • 算法设计期末复习
  • flink实现复杂kafka数据读取
  • 深度学习试题及答案解析(二)
  • Qwen文章阅读笔记
  • React简单了解
  • 【WPS安装】WPS编译错误总结:WPS编译失败+仅编译成功ungrib等
  • 学习笔记:Verilog过程结构及在线仿真
  • MFC 实现动态控件调整和主题切换
  • 驾驶证识别API-JavaScript驾驶证ocr接口集成-场景解析
  • xcode15 报错 does not contain ‘libarclite‘
  • 2-Gin 框架中的路由 --[Gin 框架入门精讲与实战案例]
  • SpringBoot集成Canal实现MySQL实时同步数据到Redis
  • android anr 处理
  • Net9解决Spire.Pdf替换文字后,文件格式乱掉解决方法
  • Git(11)之log显示支持中文
  • 13_HTML5 Audio(音频) --[HTML5 API 学习之旅]
  • 使用R语言高效去除低丰度OTU:从概念到实操
  • Python 写的 智慧记 进销存 辅助 程序 导入导出 excel 可打印
  • 【LuaFramework】服务器模块相关知识
  • 基于BigBangBigCrunch优化(BBBC)的目标函数求解算法matlab仿真
  • 【Rust自学】5.1. 定义并实例化struct
  • AtCoder Beginner Contest 385(A~E)题解
  • OpenEuler22.04配置zookeeper+kafka三节点集群
  • 前端滚动条自定义样式
  • 渗透测试-前后端加密分析之RSA+AES
  • 使用Python实现无人机自动导航系统:探索智能飞行的奥秘