JAVAEE之网络编程

news2024/11/27 6:19:05

1.网络编程

网络编程,指网络上的主机,通过不同的进程,以编程的方式实现网络通信(或称为网络数据传输)。

当然,我们只要满足进程不同就行;

所以即便是同一个主机,只要是不同进程,基于网络来传输数据,也属于网络编程。

特殊的,对于开发来说,在条件有限的情况下,一般也都是在一个主机中运行多个进程来完成网络编程。

但是,我们一定要明确,我们的目的是提供网络上不同主机,基于网络来传输数据资源:

进程A:编程来获取网络资源

进程B:编程来提供网络资源 

2.网络编程中的基本概念

2.1 发送端和接收端

在一次网络数据传输时:
发送端:数据的发送方进程,称为发送端。发送端主机即网络通信中的源主机
接收端:数据的接收方进程,称为接收端。接收端主机即网络通信中的目的主机
收发端:发送端和接收端两端,也简称为收发端。
注意:发送端和接收端只是相对的,只是一次网络数据传输产生数据流向后的概念。

2.2 请求和响应 

一般来说,获取一个网络资源,涉及到两次网络数据传输:

第一次:请求数据的发送(发送端->接收端)(客户端->服务器)

第二次:响应数据的发送(接收端->发送端)(服务器->客户端)

2.3 客户端和服务端

服务端:在常见的网络数据传输场景下,把提供服务的一方进程,称为服务端,可以提供对外服务。
客户端:获取服务的一方进程,称为客户端。

对于服务来说,一般是提供:客户端获取服务资源

3.Socket套接字

3.1 概念

Socket套接字,是由系统提供用于网络通信的技术,是基于TCP/IP协议的网络通信的基本操作单元

基于Socket套接字的网络程序开发就是网络编程

3.2 分类

Socket套接字主要针对传输层协议划分为如下三类:

1.流套接字:使用传输层TCP协议
TCP,即Transmission Control Protocol(传输控制协议),传输层协议。

以下为TCP的特点:

有连接
可靠传输
面向字节流
有接收缓冲区,也有发送缓冲区
大小不限

对于字节流来说,可以简单的理解为,传输数据是基于IO流,流式数据的特征就是在IO流没有关闭的情况下,是无边界的数据,可以多次发送,也可以分开多次接收。 

2.数据报套接字:使用传输层UDP协议
UDP,即User Datagram Protocol(用户数据报协议),传输层协议。

以下为UDP的特点

无连接
不可靠传输
面向数据报
有接收缓冲区,无发送缓冲区
大小受限:一次最多传输64k

对于数据报来说,可以简单的理解为,传输数据是一块一块的,发送一块数据假如100个字节,必须一次发送,接收也必须一次接收100个字节,而不能分100次,每次接收1个字节。

3.原始套接字(不重要)
原始套接字用于自定义传输层协议,用于读写内核没有处理的IP协议数据。 

未完!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

烫烫烫手的结构体大小计算来咯,很烫哦,慢慢消化。自定义类型(一)

emmm,在这炎热的夏天在宿舍吹着空调写着博客也是一件不错的事呢,今天就来来好好盘一下C语言中的自定义类型。 常常会回顾努力的自己,所以要给自己的努力留下足迹。 为今天努力的自己打个卡,留个痕迹吧 2024.03.29 小闭 目录 …

基于springboot实现数据库的加解密

项目地址 https://github.com/Chenchicheng/spring-ibatis-encryption 功能说明 支持使用注解的方式目标类进行加解密支持同一个类多个字段分别使用不同的加密方式支持自定义加密方法 本地调试 pull代码到本地,更换application.yml中的数据库用户名和密码&…

第十四届蓝桥杯(八题C++ 题目+代码+注解)

目录 题目一(日期统计 纯暴力): 代码: 题目二(01串的熵 模拟): 代码: 题目三(治炼金属): 代码: 题目四(飞机降落 深度…

UI的设计

一、RGB888的显示 即红色,绿色,蓝色都为8位,即通常说的24位色。可以很好显示各种过渡颜色。从硬件上,R、G、B三基色的连接线各需要有8根,即24根数据线;软件上存储的数据量也需要24位,即3个字节&…

【ERP原理与应用】用友U8实验

实验一、系统管理与基础设置 实验内容: 一、核算体系的建立 好友软件公司是一家软件制造和系统集成企业,其产品面向国内外市场,自 2019 年 3 月公司开始使用 ERP 软件管理业务。软件操作员有三位,黄红是账套 主管,张…

2024蓝旭春季第二次前端培训课

目录 CSS伪类与伪元素 伪类 伪元素 关系选择器 分类举例 后代选择器 子元素选择器 相邻兄弟选择器 通用兄弟选择器 作用使用场景 后代选择器(空格) 子元素选择器 (>) 相邻兄弟选择器 () 通用兄弟选择器 (~) 随机提问 CSS布局 基础布…

RSTP(快速生成树)

与stp的不同: 减少了端口的状态 增加了端口的角色 bpdu格式以及发送方式不同 1.RSTP 快速生成树 802.1w 作用:主要可以用来实现快速收敛,弥补普通生成树收敛慢的问题,收敛时间1s。没有时间机制,每台设备都会发送…

C语言------字符函数和字符串函数

在学习编程的过程中,我们会经常会遇到一些字符和字符串,为了方便操作字符和字符串,C语言标准库中就提供了一系列函数。那么,接下来就学习下这些函数。 1. 字符分类函数 C语言中有一系列的函数是专门做字符分析的,也就…

网络七层模型之会话层:理解网络通信的架构(五)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

飞天使-k8s知识点28-kubernetes散装知识点5-helm安装ingress

文章目录 安装helm添加仓库下载包配置创建命名空间安装 安装helm https://get.helm.sh/helm-v3.2.3-linux-amd64.tar.gztar -xf helm-v3.2.3-linux-amd64.tar.gzcd linux-amd64mv helm /usr/local/bin修改/etc/profile 文件,修改里面内容,然后重新启用export PATH$P…

java回溯算法笔记

回溯算法综述 回溯用于解决你层for循环嵌套问题,且不剪枝的回溯完全等于暴力搜索。 回溯算法模板https://blog.csdn.net/m0_73065928/article/details/137062099?spm1001.2014.3001.5501 组合问题 “不含重复元素”“不可重复使用”(startindex i1&…

虚拟机体验 mac、Linux、Windows,老游戏和软件再也没有兼容问题

安装虚拟机 下载好 VMwareWorkstation Pro 后运行安装程序,根据流程完成安装; 勾选许可协议,点击「下一步」; 这里注意更改安装路径,最好选择 C 盘以外的其他磁盘,选择好后点击「下一步」; 这里…

2024/3/30面试题的总结

1.南京某公司 1.Java的几种基本数据类型?分别是多少字节? byte,8bit 1字节 char,16bit 2字节 short,16bit 2字节 int,32bit 4字节 float,32bit 4字节 long,64bit 8字节 doubl…

C++——vector类及其模拟实现

前言:前边我们进行的string类的方法及其模拟实现的讲解。这篇文章将继续进行C的另一个常用类——vector。 一.什么是vector vector和string一样,隶属于C中STL标准模板库中的一个自定义数据类型,实际上就是线性表。两者之间有着很多相似&…

Ubuntu系统设置静态固定IP保姆级教程

1、查看网络接口信息 ifconfig 首先需要确认要设置固定IP的网络接口。在大多数情况下,这通常是ens33 2、查看路由网关信息 route -n # 查看打印 路由表 网关地址 3、备份文件 为了防止防止出现意外问题。Ubuntu中的网络配置文件通常存储在/etc/netplan/目录下&…

Linux:详解TCP报头类型

文章目录 温习序号的意义序号和确认序号报文的类型 TCP报头类型详解ACK: 确认号是否有效SYN: 请求建立连接; 我们把携带SYN标识的称为同步报文段FIN: 通知对方, 本端要关闭了PSH: 提示接收端应用程序立刻从TCP缓冲区把数据读走RST: 对方要求重新建立连接; 我们把携带RST标识的称…

uniapp实现列表动态添加

1.效果图&#xff1a; 2.代码实现&#xff1a; 这里没有用uniapp提供的uni-list控件 <template> <view id"app"> <!-- 这里为了让标题&#xff08;h&#xff09;居中展示&#xff0c;给h标签设置了父标签&#xff0c;并设置父标签text-…

【零基础C语言】文件操作

目录 理解文件操作 什么是文件 程序文件 数据文件 文件名字 二进制文件和文本文件 文件的打开和关闭 文件的打开和关闭操作 实验1&#xff0c;打开一个文件并且输入26个字母 打开读取文件text.txt ,并且将它拷贝进text_cpy.txt 使用 fputs 和 fgets 函数 使用 fprintf函…

IDEA MyBatisCodeHelper Pro最新版(持续更新)

目录 0. 你想要的0.1 包下载0.2 使用jh 1. 功能介绍2. 下载安装2.1 在idea中插件市场安装2.2 在jetbrains插件市场下载安装 3. 简单使用3.1 创建一个SpringBoot项目3.2 配置数据库3.3 一键生成实体类、mapper 0. 你想要的 0.1 包下载 测试系统&#xff1a;Windows&#xff08…

el-table 合计行的一直计算的问题。

前端只有打印日志之后&#xff0c;才发现有计算在反复执行&#xff0c;导致浏览器崩溃。并不是每一列都是这个问题&#xff0c;当然输入不同值后&#xff0c;不知为何会触发如此多次。 . 在开发环境&#xff0c;他会触发几百次getSummaries,生产环境直接崩溃 合计行的代码如下…