【十五】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

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

C++中悬垂引用(Dangling Reference) 的实现

《C++中悬垂引用(DanglingReference)的实现》C++中的悬垂引用指引用绑定的对象被销毁后引用仍存在的情况,会导致访问无效内存,下面就来详细的介绍一下产生的原因以及如何避免,感兴趣... 目录悬垂引用的产生原因1. 引用绑定到局部变量,变量超出作用域后销毁2. 引用绑定到动态分配的对象,对象

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三