内网穿透软件NPS--客户端NPC SDK交叉编译ARM64位库

背景

NPS是一款非常nice的内网穿透软件,相较于frp更加的友好,功能也更多。

NPS是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。

并且提供C端SDK可以集成到自己的应用里面

命令行模式启动客户端
从v0.26.10开始,此函数会阻塞,直到客户端退出返回,请自行管理是否重连
p0->连接地址
p1->vkey
p2->连接类型(tcp or udp)
p3->连接代理

extern GoInt StartClientByVerifyKey(char* p0, char* p1, char* p2, char* p3);

查看当前启动的客户端状态,在线为1,离线为0
extern GoInt GetClientStatus();

关闭客户端
extern void CloseClient();

获取当前客户端版本
extern char* Version();

获取日志,实时更新
extern char* Logs();

交叉编译

go 的交叉编译非常的简单

# 海思aarch64
env GOOS=linux GOARCH=arm64 CGO_ENABLED=1 CC=aarch64-himix100-linux-gcc AR=aarch64-himix100-linux-ar go build  -buildmode=c-shared -o npc_sdk.so cmd/npc/sdk.go

# nvidia平台
env GOOS=linux GOARCH=arm64 CGO_ENABLED=1 CC=aarch64-linux-gnu-gcc AR=aarch64-linux-gnu-ar go build -buildmode=c-shared -o npc_sdk.so cmd/npc/sdk.go

本地目录将生成npc_sdk.so、npc_sdk.h

hayson@hayson-Server:/nps$ file npc_sdk.so 
npc_sdk.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=888d7ca7bd88f43cae9593af177fc444cab659c2, not stripped
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
此示例中 Microsoft 下载中心 Npclnt.exe 说明命名的管道客户端界面,在 Windows 中的工作组 (WFW)。 此示例提供了一个 WFW Win32 SDK 命名的管道示例 (NPSERVER) 的命名管道客户端。此示例打开、 读取,并写入 NPSERVER 应用程序创建的命名管道。要从服务器的命名管道,以避免阻塞 WFW 下执行异步读取使用 DosReadAsyncNmPipe API。 注: 在此示例都有两个问题。 NP 回调应在一个固定的代码段中在 DLL 中。 传递到 DosReadAsyncNmPipe 和 DosWriteAsyncNmPipe 的内存固定和 pagelocked。 更多信息以下文件是可从 Microsoft 下载中心下载: Download Npclnt.exe now (http://download.microsoft.com...以下文件是可从 Microsoft 下载中心下载: 收起这个图片展开这个图片Download Npclnt.exe now (http://download.microsoft.com/download/platformsdk/npclnt/3.1/w31/en-us/npclnt.exe) 有关如何下载 Microsoft 支持文件的其他信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 119591 (http://support.microsoft.com/kb/119591/EN-US/ ) 如何从联机服务获得 Microsoft 支持文件 Microsoft 扫描此文件的病毒。Microsoft 使用该文件已过帐的日期上获得的最新病毒检测软件。该文件存储在安全性得到增强的服务器,这有助于防止未经授权的情况下对其进行更改文件上。 使用 DosReadAsyncNmPipe 或 DosWriteAsyncNmPipe 时必须小心。因为这两种 api 提供 WFW 在中断时调用的函数指针,只有有限的操作可能被执行回调。WFW SDK 引用声明下列有关回调函数: 通常,回调函数可以设置全局变量,并检查有潜在的错误 pusErrCode 参数指定该变量。但回调函数必须不修改寄存器或调用任何 MS-DOS 系统函数、 BIOS 函数或调用 MS-DOS 和 BIOS 的函数的 C 运行时函数。尽管回调函数可以调用 PostMessage 函数,则它必须不调用 SendMessage 函数。 此外,回调函数必须在应用程序的 *.DEF 文件中导出。除了导出,应用程序必须在函数调用 MakeProcInstance 之前调用异步 API。注意还必须采取不以读取时调用 FreeProcInstance 或写操作未完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值