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类与系统路径一致,避免跨平台问题。

以上内容为技术人员常用的网络编程知识点总结,结合实践经验分享。希望读者在实际开发中能有所收获。

上一篇:Unity3d C#解决transform.LookAt朝向前后翻转问题(含源码)
下一篇:如何ping指定IP的指定端口

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年05月09日 02时32分54秒