network
文章平均质量分 70
锐湃
这个作者很懒,什么都没留下…
展开
-
Android中的SPI推送
在Android开发中,我们经常需要使用不同的推送服务,比如Firebase Cloud Messaging(FCM)、Amazon Device Messaging(ADM)、华为云消息推送(HCM)和百度推送SDK。但是,在一个应用中同时集成多个推送服务并不容易。解决这个问题的方法之一是使用服务提供者接口(Service Provider Interface,SPI)。SPI是一种API,可以让我们在应用程序中找到某个接口的实现。转载 2024-04-24 17:07:26 · 37 阅读 · 0 评论 -
Linux 网络编程学习笔记——一、TCP/IP 协议族
网络层实现数据包的选路和转发,WAN(Wide Area Network,广域网)通常使用众多分级的路由器来连接分散的主机或 LAN(Local Area Network,局域网),因此通信的两台主机一般不是直接相连的,而是通过多个中间节点(路由器)连接的。网络层的任务就是选择这些中间节点,以确定两台主机之间的通信路径。数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介(以太网、令牌环等)上的传输,不同的物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供一个统一的接口。转载 2024-02-29 13:44:05 · 78 阅读 · 0 评论 -
JSON 性能差?优化手段&替代方案
在开发领域, JSON 是数据交换不可或缺的通用工具. 其人类可读格式和跨语言兼容性使其成为现代应用的基石. 然而, 正如我们在本文中所探讨的, JSON 的广泛应用并不能使其免于性能挑战.性能至关重要: 在当今的数字环境中, 速度和响应速度至关重要. 用户希望应用能够快如闪电, 即使是微小的延迟也会导致不满和机会的丧失.尺寸至关重要: 数据有效载荷的大小会直接影响网络带宽的使用和响应时间. 减少数据大小通常是优化 JSON 性能的第一步.替代格式。转载 2024-02-27 19:26:22 · 1037 阅读 · 0 评论 -
Retofit+Okhttp表单上传文件及参数处理大全
Retofit+Okhttp表单上传文件及参数处理大全转载 2024-02-27 19:07:57 · 329 阅读 · 0 评论 -
OkHttpClient设置请求响应时长和请求重试次数
OkHttpClient设置请求响应时长和请求重试次数转载 2024-02-27 18:59:45 · 690 阅读 · 0 评论 -
OkHttp4 RequestBody.create()过时解决办法 kotlin、java版本
前段时间,OKhttp3已升级到Okhttp4 ,编写语言由java过渡到kotlin,而以前okhttp3经常用到的post提交数据的:已过时,并且换成了kotlin的新特性写法!转载 2024-02-27 18:57:54 · 1099 阅读 · 0 评论 -
使用Gson库将List转换为JSON字符串
以上是三种不同的实现方法,用于将List转换为JSON字符串。方法一手动遍历List并添加引号和分隔符,方法二使用Gson库的toJson方法,方法三适用于泛型List,使用TypeToken来处理。根据实际需求选择合适的方法使用。方法三:使用Gson库的TypeToken将List转换为JSON字符串(适用于泛型List)方法二:使用Gson库的toJson方法将List转换为JSON字符串。方法一:手动遍历List并转换为JSON字符串。转载 2024-02-22 20:01:53 · 1826 阅读 · 0 评论 -
Gson字符串数组转成List对象(包括泛型操作)
通常情况下,Server端返回的json数据应该可以一次性完全解析,但是要是遇到server返回的json里又包含json字符串就得自己再手动解析一次了。我们知道json字符串解析成模型类型很简单,但是如果要把json数组字符串解析List对象,应该怎么办呢?现在开始着手解析这个json数组字符串。转载 2024-02-22 20:00:03 · 1371 阅读 · 0 评论 -
计算机网络体系结构分层
这两个模型虽然分层有所不同,但都是为了解决如何组织和优化网络通信问题而设计的。无论是OSI还是TCP/IP模型,每层都有其特定的职责,并且依赖于下一层提供的服务来实现自己的功能。这两种模型都定义了一个统一的网络架构,用于描述网络的不同层次的功能和它们之间的关系。计算机网络体系结构的分层通常指的是。(开放系统互连)模型或。转载 2024-02-04 16:47:44 · 99 阅读 · 0 评论 -
一篇文章深入理解>>计算机网络的体系结构
我们把计算机网络的各层及其协议的集合称为网络的体系结构,体系结构是这个计算机网络及其所完成的功能的精准定义。计算机网络的体系结构通常都具有可分层的特性,它将复杂的大系统分为若干较容易实现的层次。转载 2024-02-04 16:44:40 · 44 阅读 · 0 评论 -
OSI 七层模型和TCP/IP模型及对应协议(详解)
先看图,有图有真相在OSI七层模型中,处于不同层的中继系统具有不同的名称。一个设备工作在哪一层,关键看它工作时利用哪一层的数据头部信息。网桥工作时,是以MAC头部来决定转发端口的,因此显然它是数据链路层的设备。具体说:物理层:网卡,网线,集线器,中继器,调制解调器数据链路层:网桥,交换机网络层:路由器网关工作在第四层传输层及其以上集线器是物理层设备,采用广播的形式来传输信息。交换机就是用来进行报文交换的机器。多为链路层设备(二层交换机),能够进行地址学习,采用存储转发的形式来交换报文.。转载 2024-02-04 16:05:02 · 479 阅读 · 0 评论 -
一篇文章带你搞懂TCP/IP协议与OSI七层网络模型
发送方节点的传输层将数据分割成较小的数据片,同时对每一数据片安排一序列号,以便数据到达接收方节点的传输层时,能以正确的顺序重组。TCP/IP协议,毫无疑问是这三大协议中最重要的一个,作为互联网的基础协议,没有它就根本不可能上网,任何和互联网有关的操作都离不开TCP/IP协议。换言之,你提供了一个物理层。你的账户数据在发送前被加密,在网络的另一端,表示层将对接收到的数据解密。七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主 要的功能使就是帮助不同类型的主机实现数据传输。转载 2024-02-04 15:50:18 · 170 阅读 · 0 评论 -
基础知识-TCP/IP协议详解
一、TCP/IP简介所谓协议(protocol),其实就是一个群体之间规定的规则,这个规则的目的是为了保证这个群体里面的人可以正常交流。还是回到计算机和网络的通信这边来举例。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。协议中存在各式各样的内容。从电缆的规格到 IP 地址的选定方法、寻找异地用户的方法、双方建立通信的顺序,以及 Web 页面显示需要处理的步骤,等等。像这样把与互联网相关联的协议转载 2024-02-04 15:38:49 · 92 阅读 · 0 评论 -
太厉害了,终于有人能把TCP/IP协议讲的明明白白了
如下图所示,当某一报文段丢失后,发送端会一直收到序号为1001的确认应答,因此,在窗口比较大,又出现报文段丢失的情况下,同一个序列号的确认应答将会被重复不断地返回。IP 将 TCP 传过来的 TCP 首部和 TCP 数据合起来当做自己的数据,并在 TCP 首部的前端加上自己的 IP 首部。因此,互联网的协议就是 TCP/IP,TCP/IP 就是互联网的协议。另外吗,对于有路由器的情况,接收端地址往往不是自己的地址,此时,需要借助路由控制表,在调查应该送往的主机或路由器之后再进行转发数据。转载 2024-02-04 15:29:58 · 55 阅读 · 0 评论 -
为什么会有TCP/IP协议
(3)第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。所以,Client不是直接进入CLOSED,而是要保持TIME_WAIT,当再次收到FIN的时候,能够保证对方收到ACK,最后正确的关闭连接。转载 2024-02-04 15:15:32 · 46 阅读 · 0 评论 -
traceroute详解
traceroute的原理是非常非常的有意思,它收到目的主机的IP后,首先给目的主机发送一个TTL=1的UDP数据包,而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生 一个主机不可达的ICMP数据报给主机。这常常是由于,在运营商的路由器上,UDP与ICMP的待遇大不相同。总结一下,traceroute主要利用IP数据包的TTL字段值 + ICMP来实现,它发送的用于探测网络路径的数据包的IP之上的协议可以是 UDP、TCP或ICMP。转载 2024-01-29 11:20:51 · 6803 阅读 · 0 评论 -
数据帧、数据包、数据报以及数据段 详解
我们可以用一个形象一些的例子对数据包的概念加以说明:我们在邮局邮寄产品时,虽然产品本身带有自己的包装盒,但是在邮寄的时候只用产品原包装盒来包装显然是不行的。附: 数据包的结构 数据包的结构非常复杂,不是三言两语能够说清的,在这里主要了解一下它的关键构成就可以了,这对于理解TCP/IP协议的通信原理是非常重要的。上一层的内容由下一层的内容来传输,所以在局域网中,“包”是包含在“帧”里的。OSI参考模型的各层传输的数据和控制信息具有多种格式,常用的信息格式包括帧、数据包、数据报、段、消息、元素和数据单元。转载 2024-01-29 11:15:25 · 2295 阅读 · 0 评论 -
应用流量监控实践
在Java层, 创建Socket的方式是直接构造 java.net.Socket对象,我们先跟踪其构造函数的实现。在构造函数中,会调用setImpl()函数,继续跟踪setImple()实现setImpl()函数先判断 factory是否为空,如果不为空则 使用factory创建SocketImpl实例,否则直接通过 SocksSocketImple()构造函数创建。转载 2024-01-18 15:54:10 · 218 阅读 · 0 评论 -
TCP三次握手与四次挥手、流量控制(滑动窗口)、拥塞控制、半连接状态、2MSL
手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。标志位含义建立连接响应确认结束RST(reset)重置建立起一个TCP连接需要经过“三次握手”和三次握手逻辑相同,非常相似。四次挥手即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发。转载 2024-01-17 20:13:52 · 65 阅读 · 0 评论 -
详解TCP、HTTP中的保活机制 | Keepalive和Keep-Alive
HTTP 的 Keep-Alive 也叫 HTTP 长连接,该功能是由「应用程序」实现的,可以使得用同一个 TCP 连接来发送和接收多个 HTTP 请求/应答,减少了 HTTP 短连接带来的多次 TCP 连接建立和释放(销毁)的开销。TCP 的 Keepalive 也叫 TCP 保活机制,该功能是由「内核」实现的,当客户端和服务端长达一定时间没有进行数据交互时,内核为了确保该连接是否还有效,就会发送探测报文,来检测对方是否还在线,然后来决定是否要关闭该连接。参考资料实战——我用“大白鲨”让你看见 TCP。转载 2024-01-02 17:33:19 · 133 阅读 · 0 评论 -
TCP keepalive和HTTP keepalive
结论是,服务端与外界建立的每一个socket连接,都有独立的文件描述符和独立的子进程与客户端通信。HTTP keepalive则是应用层的骚操作,使得服务端的应用程序能自主决定socket的释放,因为TCP keepalive的倒计时默认值很长,web服务的某次连接通常不需要等待那么久。在某个数据包传输后,两个keepalive的定时任务同时存在且一起进入倒计时状态,一个是系统内核TCP相关代码的程序,另一个是高级编程语言(Python/Java/Go等)Web框架代码的程序,他们一起运行并不冲突。转载 2024-01-02 17:25:50 · 165 阅读 · 0 评论 -
使用tcpdump抓包
原文链接:https://blog.csdn.net/huangwenkui1990/article/details/126607097。版权声明:本文为CSDN博主「黄大包」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。新开命令窗口,在将文件导入到系统中adb push c:/test/tcpdump /data/local/,Ctrl + C快捷键。转载 2023-12-27 16:39:12 · 61 阅读 · 0 评论 -
获取网络权限http明文传输
获取网络权限转载 2023-12-05 10:52:48 · 32 阅读 · 0 评论 -
关于网络命令 ping 你了解多少
Ping(Packet Internet Groper)是 Windows、Unix 和 Linux系统下的一个命令。ping 也属于一个通信协议,是 TCP/IP 协议的一部分。Ping的运作原理是向目标主机传出一个 ICMP(Internet Control Messages Protocol)即因特网信报控制协议的请求回显数据包,并等待接收回显回应数据包。程序会按时间和成功响应的次数估算丢失数据包率(丢包率)和数据包往返时间(网络时延,Round-trip delay time)。转载 2023-12-01 17:50:07 · 675 阅读 · 0 评论 -
常用的两个网络协议——TCP和UDP
TCP是基于连接的,而UDP是基于非连接的。,适用于对网络通讯质量要求较高的场景,需要准确无误地传输给对方,比如,传输文件,发送邮件,浏览网页等等,但是可能产生丢包,所以适用于对实时性要求较高但是对少量丢包并没有太大要求的场景。比如:域名查询,语音通话,视频直播等。udp还有一个非常重要的应用场景就是隧道网络,比如:VXLAN。转载 2023-12-01 17:38:58 · 95 阅读 · 0 评论 -
PING 和 HTTP HEAD 有什么区别 ping http 测试网络可用性
2、ping 通过不同的协议 ICMP。HTTP 是一种不同的协议,由必须在服务器上运行的附加应用程序(Web 服务器)处理(ping 内置于操作系统)。根据网络服务器的重量,相对于 ping 之类的东西,它可能需要更多的时间。HTTP HEAD 仍然是 HTTP:必须在两端之间建立 TCP 连接,并且 HTTP 服务器必须回复您的请求的标头。它显示了大致的延迟,因此,如果您、使用 ping 获得一致的结果,则无法获得比这更低的延迟。与 ping 相比,它的开销要大得多,这就是为什么它需要更长的时间。转载 2023-12-01 14:32:25 · 259 阅读 · 0 评论 -
HTTP和Ping命令区别是什么
ICMP是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。它是用来检查网络是否通畅或网络连接速度的命令。HTTP将客户端浏览器的请求发送到服务器,并将响应的网页内容由服务器返回到客户端浏览器。版权声明:本文为CSDN博主「nawuyao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/nawuyao/article/details/50389872。转载 2023-12-01 14:28:00 · 333 阅读 · 0 评论 -
获取当前手机的 DHCP 信息ip,server 等
获取当前手机的 DHCP 信息ip,server 等。转载 2023-11-20 19:33:05 · 174 阅读 · 0 评论 -
获取本机开启热点、连接 WIFI 时的 IP
可以看到,在名为“ wlan0 ”(或“eth0”或“ap0”)的网络接口中,找到了我所需要的 IP 地址甚至是网络前缀。因此,结论: 找到DisplayName 为 “wlan0”(或“eth0”或“ap0”)的网络接口,再对 “wlan0”(或“eth0”或“ap0”)内的地址做过滤即可。什么原因结果会返回 null 呢?返回 null 是因为找不到 “wlan0”(或“eth0”或“ap0”),找不到“wlan0”(或“eth0”或“ap0”)大概率是因为没有打开 WIFI 或 热点。转载 2023-11-20 19:16:13 · 787 阅读 · 0 评论 -
获取wifi连接的ip地址
获取wifi连接的ip地址。转载 2023-11-20 19:12:28 · 167 阅读 · 0 评论 -
kotlin用ping命令判断网络是否是通的
kotlin实现用ping命令判断网络是否是通的原创 2023-11-16 19:39:26 · 726 阅读 · 0 评论 -
java判断是否ping通(win、linux)
版权声明:本文为CSDN博主「Asia_rao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/Asia_rao/article/details/129593846。(额外提一句:windows执行ping时包的大小为32,linux为56)1、java.net.InetAddress的api,会存在数据不准的场景。注意这里的超时时间设置,是用 -W ,而非 -w!windows服务器下,ping的命令。转载 2023-11-16 17:03:46 · 707 阅读 · 0 评论 -
部署Apache FTPServer
经过了几天的研究,终于Apache FTPServer在Android的配置和使用上有了一些心得,现在分享出来,提供给大家参考,说到这儿又不得不吐槽一下这要命的转载了,找Apache FTPServer方面的资料网上千篇一律的都是同一个人的博客,而且这个博客的很多东西还是说的比较模糊的,初次使用的人根本看不懂啊,搞毛啊,逼这我不得不再次写一篇东西出来。第一行:设置用户的登录密码 ,这个密码是MD5加密的,所以看起来有点儿奇怪,目前示例中的这个密码是admin的MD5加密值。还是按照步骤来叙述吧。转载 2023-09-08 19:13:32 · 203 阅读 · 0 评论 -
Socket java.net.SocketException: Connection reset错误异常的原因及解决
1). 如果一端的Socket被关闭(或主动关闭,或因为异常退出而 引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。2). 一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。简单的说就是在连接断开后的读和写操作引起的。原文链接:https://blog.csdn.net/Rao_Limon/article/details/90205796。直接关闭输入/出流和Socket链接。转载 2023-09-08 18:44:50 · 6189 阅读 · 0 评论 -
apache ftpserver use
apache ftpserver 使用方法示例转载 2023-09-08 18:39:43 · 84 阅读 · 0 评论 -
如何监测Android网络类型:5G/4G/3G/2G能力
App可以通过了解所连接的网络类型来获益,例如启用某些功能需要5G提供的带宽和低延迟。如果只有2G或3G网络可用,加载时间会比较慢,因此我们可以对加载时间有一定的预期。在这里,我们可以利用TelephonyManager类来获取各种关于移动网络状态的信息,其中包括网络类型!不过,使用TelephonyManager相当复杂,因为不同的Android版本有不同的情况需要考虑。转载 2023-07-03 11:26:09 · 1017 阅读 · 0 评论 -
WebView优化,让你的H5实现快速开启
WebView与原生对比差在哪里?这里引用百度APP图片来说明。百度的开发人员将这一整个过程划分为了四个阶段,并统计出了各个阶段的平均耗时。可以看到,在初始化组件阶段就花费了 260 ms,首次创建耗时均值为 500 ms,毫无疑问这是我们要优化的第一点。而最耗时的当属正文加载&渲染和图片加载两个阶段。为什么会这么耗时呢,因为这两个阶段需要进行多次网络请求、JS 调用、IO 读写。所以这里也是我们需要优化的地方。可以得出优化方向:WebView预创建和复用 渲染优化(JS、转载 2022-03-15 12:33:41 · 378 阅读 · 0 评论 -
Android 获取外网IP地址
Android 获取外网IP地址最近公司需要通过外网IP地址定位设备,所以我就撸了一把,其实我们在本地是无法获取到外网的IP地址的,得借助服务器;所以我就直接撸码,哈哈;之前开发的时候,一分钟搞定,没想到老大过来说,需要的是外网IP,当时一脸懵逼,后来研究了一下,确实通过一下代码只能拿到局域网的IP地址(当然在手机上海要考虑wifi和G网,一般如果打开了wifi那么久没有G网,所以我的代码还是可行的):获取局域网IP public static String getInNetIp(Cont转载 2021-03-03 23:25:43 · 2937 阅读 · 5 评论 -
获取安卓设备ip(GPRS/WIFI/以太网)地址
public static String getIPAddress() { NetworkInfo info = ((ConnectivityManager) Hz.getApplicationContext() .getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); if (info != null && info.isConnecte.转载 2021-03-01 20:31:46 · 315 阅读 · 0 评论