草庐IT

使用巴法云实现微信消息推送(Arduino,ESP32,HTTPClient HTTPS GET、POST)——文章最后有点补充更新

一、为什么要做微信消息推送首先,这篇不是广告,是我在玩ESP32过程中的一则笔记。我在玩ESP32的过程中,想把一些信息推送到手机上去。说起来有很多种方式,把ESP32接入到各种云平台上去,然后都可以实现向手机推送消息。但是我想最好能实现微信消息推送,毕竟微信大家用得比较多,容易接收。但是,微信出于安全原因对消息的推送是有严格限制的,不是企业小程序,个人编写的小程序是不能做消息推送的。甚至企业的小程序对推送消息类型、用户订阅选择都是有很多限制。像我这种个人玩玩来说,操作起来难度太大了。偶然了解到巴法平台可以作为一个消息代理,进行微信消息推送。原理是个人通过微信关注巴法的微信公众号,然后在设备端

使用wireshark抓包理解tcp协议和tls

首先下载安装wireshark打开软件1.选则自己连结的网络;此时就会捕获的数据2.加上端口过滤。3.启动一个本地的http服务(这里采用的nodejs);//server.jsimportkoafrom'koa';constapp=newkoa();app.use(ctx=>{ctx.body="hello"})app.listen(3000)nodeserver.js4.curlhttp://localhost:3000一个TCP报文段的最大长度为65495字节.TCP封装在IP内,IP数据报最大长度2^16-1,头部最小20,TCP头部长度最小20,所以最大封装数据长度为65535-20

GET&POST请求和响应的中文乱码解决方案

Serlvet程序的请求和响应乱码问题get请求与post请求数据乱码publicclassRequestAPIServletextendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{//获取请求参数Stringusername=req.getParameter("username");//解决get请求的中文乱码//1先以iso8859-1进行编码//2再以utf-8进行解码//username=

IDEA使用lombok实体类加上@Data注解后无法找到get和set方法

文章目录一、问题原因二、解决方法1.File→Settings2.Plugins→搜索"lombok"→Install3.RestartIDE(重启IDEA)一、问题原因IDEA没有安装lombok插件二、解决方法1.File→Settings2.Plugins→搜索"lombok"→Install3.RestartIDE(重启IDEA)重启完成后测试是否能正常调用get和set方法,如果不行如下图启用注释处理

c++ - 未初始化 auto_ptr 时 get() 是否可靠?

考虑以下代码:std::auto_ptrp;if(p.get()==0){...}get()成员函数是否是检查p是否未初始化的标准且可靠的方法?无论平台、编译器、编译器的优化标志等如何,它总是返回0吗? 最佳答案 不存在未未初始化的std::auto_ptr,defaultconstructor将指针初始化为0:explicitauto_ptr(X*p=0);因此get()将在默认构造的std::auto_ptr上有效地返回“0”。 关于c++-未初始化auto_ptr时get()是否可

c++ - 如何在 Solaris 上的 BSD 套接字上设置 TCP_NODELAY?

我正在尝试使用以下方法关闭BSD套接字的Nagle算法:setsockopt(newSock,IPPROTO_TCP,TCP_NODELAY,(char*)&flag,sizeofflag);但编译器声称TCP_NODELAY之前从未见过:error:`TCP_NODELAY'undeclared(firstusethisfunction)这是包含文件的完整列表:#include#include#include#include#include#include#includeusingnamespacestd;我还有-lnsl和-lsocket链接器选项,但它无法编译。我错过了什么吗?所

【TCP】重传与超时机制

前言在网络通信的世界里,传输控制协议(TCP)扮演着一个至关重要的角色。它确保了数据的可靠传输,就像邮差确保每一封信都能准确无误地送达收件人手中一样。但是,网络环境充满了不确定性,数据包可能会因为各种原因丢失或延迟。为了应对这种情况,TCP实现了重传和超时机制,它们就像是邮差手中的“魔法工具”,能够处理那些未按时到达的信件。TCP重传TCP实现可靠传输的方式之一,是通过序列号与确认应答。在TCP中,当发送端的数据到达接收主机时,接收端主机会返回一个确认应答消息,表示已收到消息。1. 重传原理与机制TCP(传输控制协议)是一种面向连接、可靠的传输层协议。为了保证数据的可靠传输,TCP采用了数据包

网络原理-TCP/IP(1)

应用层我们之前编写完了基本的javasocket,要知道,我们之前所写的所有代码都在应用层中,都是为了完成某项业务,如翻译等.关于应用层,后面会有专门的讲解,在此处先讲一下基础知识.应用层对应着应用程序,是程序员打交道最多的一层,调用系统提供的网络api写出的代码都是应用层的.应用层这里虽然有很多协议,但程序员应该按照场景,自定义协议.(网络传输的数据要怎么用,也要考虑数据是什么格式,里面包含哪些内容).自定义协议约定:1.服务器,客户端要交互哪些信息              2.数据具体格式(网络上是字符串/二进制比特流).客户端按照上述约定发送请求,服务器按照上述约定解析请求.服务器按照

c++ - 使用 0MQ 通过 TCP 连接到第一个空闲端口

我正在编写一个分布式搜索算法,其中代理需要在TCP套接字上监听传入连接。在某些时候,代理应该绑定(bind)一个空闲的TCP端口。端口号并不重要,但代理应将他/她的监听端口号发送给其他代理。我想这是正确的做法:socket.bind("tcp://*:0");Socket绑定(bind)成功,但是我如何获取socket绑定(bind)的端口号?我在返回端口号的zmq_getsockopt手册页中看不到任何选项代码。 最佳答案 在Zeromq中,您可以使用字符串来绑定(bind)或连接。它以协议(protocol)开头,tcp://在

UDP和TCP代理协议有什么区别?哪个更好

在互联网的世界里,数据传输的方式有很多种,其中UDP和TCP是两种常见的传输协议。而代理协议则是为了在网络中传输数据时提供安全、稳定和高效的传输环境。那么,UDP和TCP代理协议有什么区别呢?哪个更好呢?接下来,就让我们一起来探讨一下这个问题。我们来了解一下UDP和TCP这两种传输协议。UDP(用户数据报协议)是一种无连接的、不可靠的数据传输协议,它不关心数据包是否能够到达目的地,也不关心数据包的顺序。而TCP(传输控制协议)则是一种面向连接的、可靠的传输协议,它关心数据包是否能够到达目的地,并且保证数据包的顺序。UDP代理协议和TCP代理协议的主要区别在于它们的工作原理和应用场景。UDP代理