黑马java-JavaSE进阶-网络编程

news/2024/4/24 13:26:35/文章来源:https://blog.csdn.net/qq_52649952/article/details/136468742

1.网络编程

可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信)

2.基本通信架构

基本通信架构有两种形式:CS架构、BS架构

3.基本概念:

IP:设备在网络中的地址,是唯一的标识

端口:应用程序在设备中唯一的标识

协议:连接和数据在网络中传输的规则

IP地址:两种形式:IPv4、IPv6

IPv6:共128位,分8段表示,每段每四位编码成一个16进制位表示,数之间用:分开

公网IP:是可以连接互联网的IP地址;内网IP:也叫局域网IP,只能组织机构内部使用

192.168.开头的技术常见的局域网地址,范围即为192.168.0.0--192.168.255.255,专门为组织机构内部使用

特殊IP地址:

127.0.0.1、locallhost:代表本机IP,只会寻找当前所在主机

IP常用命令:

ipconfig:查看本机IP地址

ping IP地址:检查网络是否连通

4.InetAddress

代表IP地址

5.端口:

标记正在计算机设备上运行的应用程序,被规定为一个16位的二进制,范围是0-65535

分类:

注册端口:1024-49151,分配给用户进程或某些应用程序

动态端口:49152到65535,一般不固定分配某种进程,而是动态分配

周知端口:0-1023,被预先定义的知名应用占用

注意:我们自己开发的程序一般选择使用注册端口,且一个设备中不能出现两个程序的端口号一样,否则出错

6.通信协议

网络上通信的设备,事先规定的连接规则,已经传输数据的规则称为网络通信协议

开放式网络互连标准:OSI网络参考模型

UDP:用户数据报协议

  • 无连接、不可靠通信
  • 不事先建立连接,数据按照包发,一包数据包含:自己的IP、程序端口,目的地IP、程序端口和数据等
  • 发送方不管对方是否在线,数据在中间丢失也不管,如果接受方收到数据也不返回确认,故是不可靠的

TCP:传输控制协议

  • 面向连接、可靠通信
  • 最终目的:保证在不可靠的信道上实现可靠传输
  • TCP注意有三个步骤实现可靠传输:三次握手建立连接,传输数据进行确认,四次挥手断开连接
  • 三次握手建立可靠连接:

可靠连接:确定通信双方,收发消息都是正常无问题的

  • 四次挥手断开连接:

确保双方数据的收发都已完成

7.UDP通信

特点:无连接、不可靠通信

不事先建立连接,发送端每次把要发送的数据(限制在64kb)、接收端ip等信息封装成一个数据包,发出去就不管了

java提供了一个java.net.DatagramSocket类来实现UDP通信

8.TCP通信

特点:面向连接、可靠通信

通信双方实现会采用“三次握手”方式建立可靠连接,实现端到端的通信;底层能保证成功传给服务端

Java提供了一个java.net.Socket类来实现TCP通信

9.TCP通信-------客户端开发

客户端程序是通过java.net下的Socket类实现

10.TCP通信----服务端程序的开发

服务端是通过java.net包下的ServerSocket类来实现的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_997784.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学c++对Python有帮助吗?

学习C对Python编程确实有帮助,尽管这两种语言在许多方面有很大的不同。以下是学习C可能对Python编程产生帮助的几个方面: 理解底层概念:C是一种更接近硬件的编程语言,它要求程序员更深入地理解内存管理、指针、数据类型等底层概念…

【Proteus仿真】【51单片机】坐姿矫正提醒器设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器,使用LCD1602液晶显示模块、HC-SR04超声波模块、蜂鸣器、按键、人体红外传感器等。 主要功能: 系统运行后,LCD1602显示超声波检…

Android fragment的使用案例

效果图:两个点击事件,显示不同的fragment布局 默认是如下图,点击页面一也如下图 点击页面二如下图: Android Fragment的生命周期是与其所在的Activity紧密相关的。当一个Fragment被添加到Activity中时,它将经历一系列…

Android使用WebView打开网页链接(内嵌H5网页)的两种方式之一

发布Android应用,除了用原生开发外,更多是采用内嵌H5网页的方式来做,便于更新以及多平台使用。 一、第一种方式是直接通过WebView打开外部H5链接。 新建Android工程 直接创建一个工程,点击运行就可以了,打开是个空页…

大路灯护眼灯哪个牌子好?精心挑选五款大路灯,无广分享

当前,大路灯作为一种良好帮助改善光线环境的工具,受到了广泛关注,并以其卓越的光线舒适度功能赢得了许多用户的青睐。然而,其迅速增长的人气也伴随着一些负面反响,其中包括了关于可能对眼睛造成损伤和健康风险的报道。…

代码之旅:我的算法探索之路(二)力扣 最接近的三数之和

目录 LeetCode 第16题 最接近的三数之和 题目 解题思路 代码 结果 LeetCode 第18题 四数之和 题目 解题思路 代码 结果 LeetCode 第16题 最接近的三数之和 题目 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使…

TCP传输收发

TCP通信: TCP发端: socket connect send recv close TCP收端: socket bind listen accept send recv close 1.connect int connect(int sockfd, const struct sockaddr *addr, socklen_t ad…

HTML5:七天学会基础动画网页9

在进行接下来的了解之前我们先来看一下3d的xyz轴,下面图中中间的平面就相当于电脑屏幕,z轴上是一个近大远小的效果。 3d转换属性 transform 2D或3D转换 transform-origin 改变旋转点位置 transform-style 嵌套元素在3D空间如何显 …

IM聊天交友APP源码IM带音视频Uniapp即时通讯安卓苹果APP修改二开

前端开发语言:VUE( 安卓,IOS,WEB为一套前端代码) 服务器端开发语言: PHPWebSocket 数据库:MySql mongodb 前端打包工具:Hbuilder 服务器搭建工具:宝塔 Xshell 短信接口: 支持…

DxO PureRAW:赋予RAW图像生命,打造非凡视觉体验 mac/win版

DxO PureRAW 是一款专为RAW图像处理而设计的软件,旨在帮助摄影师充分利用RAW格式的优势,实现更加纯净、细腻的图像效果。该软件凭借其强大的功能和易于使用的界面,成为了RAW图像处理领域的佼佼者。 DxO PureRAW 软件获取 首先,Dx…

R语言,实现MACD指标计算:股票技术分析的利器系列(1)

R语言,实现MACD指标计算:股票技术分析的利器系列(1) MACD指标代码完整代码介绍代码EMA函数calculate_DEA 函数calculate_MACD 函数 运行结果 MACD指标 先看看官方介绍: MACD (平滑异同平均线) 指标说明 DI…

【C语言基础】:深入理解指针(三)

文章目录 深入理解指针一、冒泡排序二、二级指针三、指针数组3.1 指针数组模拟二维数组 四、字符指针变量五、数组指针变量5.1 数组指针变量是什么?5.2 数组指针变量的初始化 六、二维数组传参的本质 深入理解指针 指针系列回顾: 【C语言基础】&#xf…

苹果怎么录屏?简单步骤教你一键搞定

随着科技的发展,智能手机的普及,越来越多的用户开始使用手机来录制屏幕。尤其是在苹果手机上,可是很多用户不知道苹果怎么录屏。本文将详细介绍苹果手机的内置录屏方法,通过详细的步骤指导,教你如何进行屏幕录制。 苹果…

基本设计模式

单例模式 ES5 function Duck1(name:string){this.namenamethis.instancenull }Duck1.prototype.getNamefunction(){console.log(this.name) }Duck1.getInstancefunction(name:string){if(!this.instance){this.instance new Duck1(name)} } const aDuck1.getInstance(a) const…

java当中的栈和队列

一、Java中的栈 1.常用方法 注意上面的peek()方法和pop()方法的区别&#xff01; 2.实例 import java.util.Stack; public class StackTest { public static void main(String[] args) { Stack<String> stack new Stack<String>(); System.out.println(&qu…

微信小程序开发系列(二十二)·wxml语法·双向数据绑定model:的用法

目录 1. 单向数据绑定 2. 双向数据绑定 3. 代码 在 WXML 中&#xff0c;普通属性的绑定是单向的&#xff0c;例如&#xff1a;<input value"((value))"/> 如果希望用户输入数据的同时改变 data 中的数据&#xff0c;可以借助简易双向绑定机制。在对应属性…

Redis分段锁,如何设计?

问题场景&#xff1a;热点库存扣减问题 秒杀场景&#xff0c;有一个难度的问题&#xff1a;热点库存扣减问题。 既要保证不发生超卖 又要保证高并发 如果解决这个高难度的问题呢&#xff1f; 答案就是使用redis 分段锁。 什么是分布式锁&#xff1f; 一个分布式系统中&am…

数字社交时代的引领者:Facebook的元宇宙探索

引言&#xff1a; 在当今数字社交时代&#xff0c;人们的社交方式正在经历着翻天覆地的变化。随着虚拟现实技术的不断发展和元宇宙概念的崛起&#xff0c;社交网络正朝着一个全新的未来迈进。作为全球最大的社交网络平台之一&#xff0c;Facebook正在积极探索元宇宙时代的社交…

(1)预处理

我们需要的文件结构如上 main.cpp add.h add.cpp add.h 这里使用riscv的工具链编译为.i文件&#xff0c;需要使用-E&#xff0c;就是只进行预处理&#xff0c;我们可以得到两个.i文件即main.i和add.i main.i 这里看到main.i里头文件全部替换&#xff0c;然后多了三万多行 所以…

四、软考-系统架构设计师笔记-信息系统基础知识

1、信息系统概述 信息系统的定义 信息系统是由计算机硬件、网络和通信设备、计算机软件、信息资源、信息用户和规章制度组成的以处理信息流为目的的人机一体化系统。 信息系统任务是对原始数据进行收集、加工、存储&#xff0c;并处理产生各种所需信息&#xff0c;以不同的方式…