【十五】Java网络编程(能实现计算机自娱自乐的网络编程)

2023-11-09 14:59

本文主要是介绍【十五】Java网络编程(能实现计算机自娱自乐的网络编程),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

所有知识体系文章,GitHub已收录,欢迎Star!再次感谢,愿你早日进入大厂!

GitHub地址: https://github.com/Ziphtracks/JavaLearningmanual

搜索关注微信公众号“码出Offer”,送你学习福利资源!


目录


一、什么是网络
二、计算机网络
三、网络模型
四、通信协议
五、IP与端口
六、网络编程
七、网络编程之服务器端和客户端相互请求问好
八、网络编程交互(多线程、集合、网络编程、IO流综合案例)


思维导图参考:【十五】Java网络编程思维导图


【综合案例】
(多线程、IO流、网络编程、properties集合)好玩的网络编程交互实现服务器端【ServerSocket】和客户端【Socket】的注册与登录功能
【知识扩展】
TCP的三次握手、四次挥手


一、什么是网络

网络的概念
  • 由点和线构成,表示诸多对象间的相互联系
  • 比如:
    • 蜘蛛网
    • 人脉网
    • 计算机网络

二、计算机网络

  • 为实现资源共享和信息传递,用过通信线路连接起来的若干主机(Host)
    计算机网络
  • 互联网: (Internet)点与点相连
  • 万维网: (WWW - World Wide Web)端与端相连
  • 物联网: (Iot - Internet of things)物与物相连
  • 网络编程: 让计算机与计算机之间建立连接、进行通信

三、网络模型

  • OSI(Oper System Interconnection)开放式系统互联
    在这里插入图片描述
TCP/IP模型
  • 一组用于实现网络互联的通信协议,将协议分为四个层次
    在这里插入图片描述

四、通信协议

TCP/UDP
  • TCP协议: Transmission Control Protocol传输控制协议
    • 是一种面向连接、可靠的、基于字节流的传输层通信协议。数据大小无限制。建立连接的过程需要三次握手,断开连接的过程需要四次挥手
  • UDP协议: User Datagram Protocol用户数据报协议
    • 是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,每个包的大小64KB

五、IP与端口

  • IP协议: Internet Protocol Address互联网协议地址/网络协议地址
    • 分配给互联网设备的数字标签(唯一标识)
  • IP地址分为两种:
    • IPV4: 4字节32位整数,并分成4段8位的二进制数,每8位之间用圆点隔开,每8位整数可以转换为一个0~255的十进制整数
      • 格式: D.D.D.D
      • 例如: 255.255.255.255
    • IPV6: 16字节128位整数,并分成8段十六进制数,每16位之间用圆点隔开,每6位整数可以转换为一个0~65535的十进制数
      • 格式: X.X.X.X.X.X.X.X
      • 例如: FFFF.FFFF.FFFF.FFFF.FFFF.FFFF.FFFF.FFFF
IPV4的应用分类
  • A类: 政府机构,1.0.0.1~126.255.255.254
  • B类: 中型企业,128.0.0.1~191.255.255.254
  • C类: 个人用户,192.0.0.1~223.255.255.254
  • D类: 用于组播,224.0.0.1~239.255.255.254
  • E类: 用于实验,240.0.0.1~255.255.255.254
  • 回环地址: 127.0.0.1,指本机,一般用于测试使用
  • 查看IP命令: ipconfig
  • 测试IP命令: ping D.D.D.D
Port
  • 端口号: 在通信实体上进行网络通讯的程序的唯一标识
  • 端口分类:
    • 公认端口: 0~1023
    • 注册端口: 1024~49151
    • 动态或私有端口: 49152~65535
  • 常用端口:
    • Mysql: 3306
    • Oracle: 1521
    • Tomact: 8080
    • SMTP: 25
    • Web服务器: 80
    • FTP服务器: 21

这篇关于【十五】Java网络编程(能实现计算机自娱自乐的网络编程)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/376844

相关文章

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入