JavaEE:网络编程

网络编程:通过代码完成基于网络的跨主机通信

跨主机通信方式:

1.TCP/IP网络

2.蓝牙通信

3.近场通信NFC

4.毫米波通信:功率高,带宽高,抗干扰能力差

其中TCP/IP网络是日常编程中最常涉及到的,最通用的跨主机通信的方式


一些概念

客户端 VS 服务器

客户端:在网络中主动发起通信的一方

服务器:被动接受的一方


客户端和服务器之间的交互

客户端给服务器发送的数据,称为请求(request)

服务器返回给客户端的数据,称为响应(response)

1.一问一答

一个请求对应一个响应,进行web开发就是这种模式

2.一问多答

一个请求对应多个响应,涉及到下载的场景

3.多问一答

多个请求对应一个响应,涉及到上传的场景

4.多问多答

多个请求对应多个响应,涉及到远程控制的场景


TCP VS UDP

进行网络编程需要使用系统的API,本质上是由传输层提供的

涉及到TCP和UDP两个协议,两个协议差异很大

TCP特点:有连接;可靠传输;面向字节流;全双工

UDP特点:无连接;不可靠传输;面向数据报;全双工

连接

有连接:指抽象且虚拟的连接。连接的特点是双方都能认同,例如打电话就是有连接的通信方式

无连接:例如发微信/短信,无论你是否同意,我都能给你发过去

网络中的连接:通信双方有一些数据结构能各自保存对方的相关信息


传输可靠性

前提:无论使用什么技术,都无法100%保证网络数据能从A传到B

可靠传输:尽可能完成数据传输,无法确保对方是否收到,但发送方可以知道对方是否收到了

不可靠传输:就是不知道对方是否收到数据咯


面向字节流/数据报

面向字节流:和文件的字节流一致,网络中传输的数据基本单位是字节

面向数据报:传输的基本单位是一个数据报(由一系列字节构成的特定的结构)


全双工

全双工:一个信道可以双向通信(类似日常见到的马路)

半双工:只能单向通信


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

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

相关文章

【考研数学】打基础用张宇《30讲》还是武忠祥《基础篇》?

基础课不太可能所有的东西全都覆盖,还是先搭起一个知识框架,然后不断的填充和完善。 所以不必太过于在意少一些东西,我们不可能一口吃成胖子,基础知识肯定不会遗漏的,只可能一些技巧不到位。 从自己的情况考虑&#…

jenkins 使用k8s插件连接k8s集群

jenkins 安装k8s 插件 配置k8s节点 填写k8s 配置信息 生成秘钥 在服务器上面 查看地址 Kubernetes 服务证书 key cat /root/..kube/config 查看秘钥 对秘钥进行base64 位 加密 echo "秘钥内容" | base64 -d -----BEGIN CERTIFICATE----- MIIDITCCAgmgAwIB…

漏洞发现-漏扫项目篇武装BURP浏览器插件信息收集分析辅助

知识点 1、插件类-武装BurpSuite-漏洞检测&分析辅助 2、插件类-武装谷歌浏览器-信息收集&情报辅助 章节点: 漏洞发现-Web&框架组件&中间件&APP&小程序&系统 扫描项目-综合漏扫&特征漏扫&被动漏扫&联动漏扫 Poc开发-Ymal语…

Linux:导出环境变量命令export

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 Linux中的内建命令export命令用于创建一个环境变量,或将一个普通变量导出为环境变量,并且在这个过程中,可以给该环境变量赋值。 下面…

19.创建帖子

文章目录 一、建立路由二、开发CreatePostHandler三、编写logic四、编写dao层五、编译测试运行 一、建立路由 这里要稍微注意的是:需要登录后才可以发表帖子,所以需要用到我们之前写的鉴权中间件。中间件对用户携带的token解析成功后,便会将…

第6章:6.1 文本格式化 (MATLAB入门课程)

讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 在数据处理与报告生成的过程中,我们经常需要将数据转…

JUC之JMM

Java内存模型JMM JMM三大特性:可见性、有序性、原子性 可见性 原子性:指一个操作是不可打断的,即多线程的环境下,操作不能被其他线程干扰 有序性 处理器在进行重排序时,必须要考虑指令之间的数据依赖性。多线程环境…

【c++修仙】c语言练气第九重动态内存管理

为什么要有动态内存 例如 int a20 char arr[10]{10}; 这些的内存是固定的 但是有时候我们需要的空间大小是在程序运行的时候才能知道的 malloc和free void* malloc (size_t size) 这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。 如果开辟…

“我快无聊死了”用英语怎么说?柯桥英语口语学习,成人零基础学外语

每日一句 Im bored to death. 我快无聊死了。 单词解析: bored / bɔːd / adj.无聊的,厌倦的 bored to d15857575376eath:指非常无聊或厌烦,达到了极点的程度。 "bored" 和 "boring" 都与无聊相关&#…

leetcode 热题 100_删除链表的倒数第 N 个结点

题解一: 递归:利用递归栈逆向遍历链表,并用全局变量记录当前遍历的是倒数第几位节点,当遍历到待删节点的上一位节点时,node.nextnode.next.next删除待删节点。需要注意当删除的是头节点时,直接return head.…

java-可变参数

可变参数是什么? 可变参数就是指传入的参数个数是可变的,不是固定的 为什么要可变参数? 当我们要传入大量的形参时,我们就可以用到可变参数了 定义格式 数据类型...变量名; 例如int ...a; 可变参数的细节: &…

这款自动引流软件居然能让你的营销效果翻倍提升!

在数字化时代,营销策略的高效执行对企业来说至关重要。自动引流软件作为现代企业营销工具箱中的一员,其重要性不言而喻。这类软件通过智能化、自动化的方式,将潜在客户吸引到企业的销售渠道中,从而为企业带来可观的收益和品牌曝光…