
java基础学习笔记之:一篇文章搞懂网络编程
发布日期:2021-05-28 16:48:41
浏览次数:22
分类:精选文章
本文共 1244 字,大约阅读时间需要 4 分钟。
网络编程学习:从协议到实践
1. 扩展知识点:网络协议的划分
网络协议可以按照OSI协议划分为五层:物理层、数据链路层、网络层、传输层、应用层。每一层都有特定的协议标准。
- 物理层:传输的是二进制数据,常用的协议包括ISO2210、IEEE802等。
- 数据链路层:对数据进行简单封装。在局域网内,通信通过广播实现;跨网关则需要网络层的IP协议。
- 网络层:负责IP地址的获取与管理,IP协议是核心。
- 传输层:包括TCP和UDP协议。TCP面向连接,UDP无连接。
- 应用层:HTTP、FTP、SMTP等应用协议属于这里。
2. protocols for network communication
网络协议的应用场景各不相同。需要对方的IP地址和端口号进行通信。
- IP地址:用来标识网络上的设备。
- 端口号:区分不同应用的数据流。
3. 常用网络编程类
Java中的InetAddress类用于处理IP地址与主机名的相关操作。类似的,还有Socket和DatagramPacket类用于实现UDP和TCP通信。
- InetAddress.getByName("127.0.0.1")获取本地主机名和IP地址。
- DatagramPacket封装数据包,DatagramSocket用于发送和接收数据包。
4. UDP与TCP协议
UDP协议无连接通信,适合对传输速度要求高、可靠性要求低的场景。TCP协议面向连接,保证数据可靠传输。
UDP协议特点:
- 不需要建立连接。
- 无连接状态保存。
- 数据传输速度快,但安全性差。
TCP协议特点:
- 需要三次握手建立连接。
- 保证数据可靠传输。
- 适合需要可靠通信的场景。
5. UDP通信实现
UDP发送端:
- 使用DatagramPacket封装数据,通过DatagramSocket发送。
- 实现步骤:创建数据包、发送数据包、关闭资源。
UDP接收端:
- 绑定端口,接收数据包。
- 解析数据包信息:发送IP、端口、数据长度。
- 安全关闭套接字。
6. TCP通信实现
TCP通信需要客户端与服务器之间建立连接。通过Java的Socket类实现。
客户端程序:
- 调用Socket.tcp连接。
- 获取输出流实现数据传输。
服务器程序:
- 使用ServerSocket监听端口。
- 通过socket.accept()获取客户端连接。
- 处理客户端数据,返回回应。
7. 多线程解决TCP图片上传问题
为了支持多线程图片上传,服务器端需要为每个客户端开启独立线程。
客户端:
- 使用线程池管理上传任务。
- 每个上传任务独立处理,不影响其他任务。
服务器端:
- 根据客户端连接获取Socket对象。
- 使用Thread类运行上传任务。
- 每个任务独立处理,不占用主线程。
8. 实用技巧
- 文件命名规则:域名+时间戳+随机数,避免重复文件。
- 文件路径处理:使用File类与系统路径一致,避免跨平台问题。
以上内容为技术人员常用的网络编程知识点总结,结合实践经验分享。希望读者在实际开发中能有所收获。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年05月09日 02时32分54秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【Python】各大模块应用合集
2019-03-16
BUUCTF:[湖南省赛2019]Findme
2019-03-16
2021兜兜百度域名URL批量采集软件【高速】
2019-03-17
小程序中收藏、分享、客服功能
2019-03-17
ciscn2021西北部分pwn
2019-03-17
PSPNet:金字塔场景解析网络
2019-03-17
Spring Cloud Ribbon
2019-03-17
order service 调用商品库存服务和用户服务
2019-03-17
ih5学习笔记_事件对象
2019-03-17
p144循环网络
2019-03-17
rnn-循环神经网络(序列问题)
2019-03-17
Finger.01 - ESP8266模块STA模式调试
2019-03-17
三维点云处理
2019-03-17
source insight V4 下载方法
2019-03-17
UART\串口\TTL\RS-232\RS-485的区别
2019-03-17
springboot security 基于redis的session共享(7)
2019-03-17
vue 权限管理 菜单按钮权限控制(7)
2019-03-17
vue 权限管理 主题切换(8)
2019-03-17
springboot 文件上传下载(简洁明了)
2019-03-17
spring
2019-03-17