- 博客(35)
- 资源 (7)
- 收藏
- 关注
原创 OpenHarmony多线程安全map实现解析
C++ STL库中相关容器都是线程不安全的,所以在OpenHarmony的utils中提供的基础C++库中提供了线程安全的SafeMap实现。
2022-06-28 23:58:50 707
原创 golang开发微信小程序后台获取openid
微信openid是表示用户在当前应用中的唯一标识,比如小程序,微信公众号等,这些都算是一个应用。如果有多个应用,同一个用户的openId可能并不相同。
2022-06-09 23:32:09 541
原创 golang微信小程序后台开发之维护接口调用凭证
获取小程序全局唯一后台接口调用凭据(access_token)。调用绝大多数后台接口时都需使用 access_token,开发者需要进行妥善保存。
2022-06-09 23:26:08 309
原创 OpenHarmony第三方库LwIP协议库分析
通常在网络编程时,我们使用socket,bind,listen,accept,connect,send,recv等网络函数,这些是基于操作系统提供的头文件如和库来实现的。在调用socket创建套接字后,比如一个tcp协议的套接字,我们应用层只需要调用send/recv等来发送或接收消息,具体如何将消息封装转换为tcp报文,ip报文也是操作系统提供的能力。所以操作系统给我们隐藏了底层tcp等协议处理过程,如封包解包,流量控制,窗口管理,三次握手等处理。而lwip库则是对tcp/ip...
2022-06-09 22:59:09 631
原创 OpenHarmony鸿蒙Wifi AP业务流程分析
AP业务功能主要包括开启、关闭、设置热点配置以及连接设备管理(连接状态通知,黑名单管理)AP业务主要接口接口文件: wifi/interfaces/innerkits/native_cpp/wifi_standard/include/wifi_hotspot.h接口名称接口描述ErrCode EnableHotspot();开启APErrCode DisableHotspot();关闭APErrCode GetHotspotState(int &sta
2022-05-23 18:27:04 1396 1
原创 iptables详解及一些常用规则
iptables简介netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。iptables基础规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息 包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP
2022-03-04 10:40:54 11371
原创 Golang http server 跨域问题与解决办法
跨域,简称CROS,Cross-origin resource sharing。这里不仅仅是golang开发http server时会遇到的问题,它不区分语言,只要是http server都可能遇到这个问题。本文介绍跨域的通用解决办法。一个简单的golang http server使用golang开发一个简单的http server程序,程序应答hello, world。如下逻辑所示:package mainimport "net/http"func HandlerHttp(w http.
2021-12-16 05:00:00 4446
原创 c语言大数加法
c语言中int类型通常为32位,double类型为64,但不管多少位,能表达的数据还是有限的。对于超大数据的加法,如果通过转换为实际int或double类型值肯定是不行的,这时就需要考虑使用字符串方式,逐位相加来实现大数加法。遇到一个问题,描述如下题目描述求2个浮点数相加的和题目中输入输出中出现浮点数都有如下的形式:P1P2…Pi.Q1Q2…Qj对于整数部分,P1P2…Pi是一个非负整数对于小数部分,Qj不等于0关于输入第1行是测试数据的组数n,每组测试数据占2行,分别是两个加数。每.
2021-12-13 15:18:46 484
原创 Golang结构体与json互转
Golang中结构体与json格式字符串可通过系统库encoding/json完成struct转json字符串通过json.Marshal将结构体转换为字符串输出。 package main import ( "encoding/json" "fmt" ) type Person struct { Name string Age int From string } func main() { .
2021-12-07 19:25:03 6472
原创 添加vscode到右键菜单
vscode是开发常用的工具,它通常用来打开整个文件夹,并读取文件夹下源码文件。当我们在windows下进入某个文件夹时通常向右键直接在vscode中打开,却发现vscode中并没有在右键列表中。现象: 在某个文件夹下点击鼠标右键,查看选项菜单,发现没有vscodewindows下配置基本都与注册表有关系,所以更改注册表相关信息。我们写一个reg文件,批量执行Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\.
2021-12-05 13:11:50 1647
原创 cc1.exe: sorry, unimplemented: 64-bit mode not compiled in
使用go语言处理ethereum项目,在windows环境下执行测试程序时,报错# runtime/cgocc1.exe: sorry, unimplemented: 64-bit mode not compiled inFAIL command-line-arguments [build failed]FAIL分析错误日志,显示64位模式不支持。那么在windows上安装的是mingw编译器,查看mingw发现确实是32位的。所以需要从MinGW官网上下载安装64位版本,进
2021-12-01 15:34:01 3688
原创 gethostbyname的用法以及阻塞问题
gethostbyname函数通常用于根据域名获取ip地址,函数原型如下所示#include <netdb.h>struct hostent *gethostbyname(const char *name);函数返回hostent结构指针,如果失败则返回NULL指针。hostent结构定义如下所示struct hostent { char *h_name; // 主机规范名 char **h_aliases; // 主机别名,可能有多个别名,以空指针结束
2021-11-30 23:45:00 4694 1
原创 C++实现DNS域名解析
背景在调用gethostbyname函数时会遇到阻塞10秒钟问题,为了控制阻塞时间,在调用之前查询DNS信息,类似nslookup命令。只当查询DNS正确返回时,才调用gethostbyname函数,也即自己控制阻塞时间。根据RFC1035文档,DNS查询采用53端口,可使用UDP/TCP协议。DNS查询/回复包格式为:ID(16bits):标识符,一般填入本进程的标识符QR(1bits):标志位,查询包为0,回复包为1Opcode(4bits):查询的种类,标准查询为0QDCOUN..
2021-11-30 19:06:14 4084
原创 Go语言下载网络图片
每个编程语言中文件操作、字符串操作都是最基本的功能,需要熟练掌握应用。下载网络图片,并将文件保存到本地路径,本文就介绍go语言中的一个实现示例。实现思路: 函数定义中包含保存文件路径以及图片的http地址,首先需要根据图片http地址截取其最后一段作为文件名,然后使用go语言自带的http库请求获取图片,最后将获取到结果保存到文件中。实现代码如下:package mainimport ( "fmt" "io/ioutil" "net/http" "strings")// 下载图.
2021-11-29 23:51:53 3669
原创 crypto: requested hash function #5 is unavailable
使用golang编码计算sha256加密,运行时报错panic: crypto: requested hash function #5 is unavailable先贴一下源码:package mainimport ( "crypto" "encoding/hex" "fmt")func main() { s := "Transfer(address,address,uint256)" m := crypto.SHA256.New() m.Write([]byte(s)) v :
2021-11-29 04:00:00 387
原创 去除stackoverflow页面上关不掉的cookie弹窗
不知道怎么搞的,打开stackoverflow后,在页面左下角总出现一个弹窗,不管怎么点击就是消失不了。笔者使用火狐浏览器,在弹窗上点击鼠标右键,选择”检查“后打开开发者工具栏。在开发者工具栏选中的div中,点击鼠标右键,并在弹出选项中点击删除节点,即可去除页面上弹窗。...
2021-11-28 22:33:57 2666 4
原创 Golang顺序输出map
golang中map每次输出时顺序都不一致,在某些情况下甚至需要按顺序输出map。那么如何做到顺序输出呢?map每次输出结果都不一致package mainimport ( "fmt" "sort")func main() { mp := make(map[string]string) mp["beijing"] = "beijing" mp["tianjin"] = "tianjin" mp["shanghai"] = "shanghai" mp["chongqing"]
2021-11-28 21:54:04 2565
nfttoken.rar
2022-02-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人