[GH-ISSUE #42] 增加一个c/c++版本的协议接口吧 #13

Closed
opened 2026-05-05 11:31:30 -06:00 by gitea-mirror · 9 comments
Owner

Originally created by @darcyg on GitHub (Jul 4, 2016).
Original GitHub issue: https://github.com/fatedier/frp/issues/42

方便的话,提供一个c或c++版本的反向代理功能库
方便大家在嵌入式系统上移植终端。
现在openwrt的开发环境不支持go语言。

Originally created by @darcyg on GitHub (Jul 4, 2016). Original GitHub issue: https://github.com/fatedier/frp/issues/42 方便的话,提供一个c或c++版本的反向代理功能库 方便大家在嵌入式系统上移植终端。 现在openwrt的开发环境不支持go语言。
Author
Owner

@fatedier commented on GitHub (Jul 4, 2016):

嵌入式系统上大多数是 ARM 架构的吗,如果是的话 Go 可以交叉编译出相应地版本,因为现在的优势就是跨平台,不需要为各个平台用 C 编写适配的代码。

如果是移植的话,主要就是和服务器端的通讯协议,这个其实很容易就能看出来,后面会优化整理一下,都放在 models/msg 下面,如果有必要的话会在文档上说明大致的处理逻辑。

<!-- gh-comment-id:230281430 --> @fatedier commented on GitHub (Jul 4, 2016): 嵌入式系统上大多数是 ARM 架构的吗,如果是的话 Go 可以交叉编译出相应地版本,因为现在的优势就是跨平台,不需要为各个平台用 C 编写适配的代码。 如果是移植的话,主要就是和服务器端的通讯协议,这个其实很容易就能看出来,后面会优化整理一下,都放在 models/msg 下面,如果有必要的话会在文档上说明大致的处理逻辑。
Author
Owner

@darcyg commented on GitHub (Jul 5, 2016):

我现在用openwrt,而且很多开发板的编译工具链都很老,编译不了go。
目前op的官方还没支持go,但有人给op打了go补丁。但该补丁只能在
gcc 5.3.0 上用,现在我们用的稳定分支是15.05,gcc是4.8.6
如果你们能提供c的一个通讯协议和转发处理(这个你们做通讯设计,
服务器开发,变动最清晰,你们做比较合适),剩下的功能我可以做。

<!-- gh-comment-id:230372816 --> @darcyg commented on GitHub (Jul 5, 2016): 我现在用openwrt,而且很多开发板的编译工具链都很老,编译不了go。 目前op的官方还没支持go,但有人给op打了go补丁。但该补丁只能在 gcc 5.3.0 上用,现在我们用的稳定分支是15.05,gcc是4.8.6 如果你们能提供c的一个通讯协议和转发处理(这个你们做通讯设计, 服务器开发,变动最清晰,你们做比较合适),剩下的功能我可以做。
Author
Owner

@fatedier commented on GitHub (Jul 5, 2016):

@darcyg 我在其他平台交叉编译出的 ARM 版本的可执行程序,直接放上去执行,这个不能用吗?

目前交互协议还比较烂,后面准备优化的,如果上面说的那个实在不能用,等后面优化过后再提供吧,现在协议的改动也会比较频繁。你的意思应该就是需要提供一个协议的数据结构以及解析的步骤吧。

<!-- gh-comment-id:230374228 --> @fatedier commented on GitHub (Jul 5, 2016): @darcyg 我在其他平台交叉编译出的 ARM 版本的可执行程序,直接放上去执行,这个不能用吗? 目前交互协议还比较烂,后面准备优化的,如果上面说的那个实在不能用,等后面优化过后再提供吧,现在协议的改动也会比较频繁。你的意思应该就是需要提供一个协议的数据结构以及解析的步骤吧。
Author
Owner

@darcyg commented on GitHub (Jul 5, 2016):

嗯,go我没试过。不清楚需要什么依赖库

<!-- gh-comment-id:230411839 --> @darcyg commented on GitHub (Jul 5, 2016): 嗯,go我没试过。不清楚需要什么依赖库
Author
Owner

@fatedier commented on GitHub (Jul 5, 2016):

@darcyg 你可以试下我编译好的 ARM 版本,依赖很少,主要就是 libc 和 libpthread。

<!-- gh-comment-id:230413457 --> @fatedier commented on GitHub (Jul 5, 2016): @darcyg 你可以试下我编译好的 ARM 版本,依赖很少,主要就是 libc 和 libpthread。
Author
Owner

@fatedier commented on GitHub (Jul 5, 2016):

https://github.com/golang/go/issues/16210

我看 go 1.6 好像已经支持 mips 版本的交叉编译了。

<!-- gh-comment-id:230415387 --> @fatedier commented on GitHub (Jul 5, 2016): https://github.com/golang/go/issues/16210 我看 go 1.6 好像已经支持 mips 版本的交叉编译了。
Author
Owner

@fatedier commented on GitHub (Jul 5, 2016):

@darcyg frp_0.7.0_linux_mips64

放上了一个 linux/mips64 的版本,这些我都没玩过,你可以测试一下看看能不能用😄

<!-- gh-comment-id:230437615 --> @fatedier commented on GitHub (Jul 5, 2016): @darcyg [frp_0.7.0_linux_mips64](https://github-cloud.s3.amazonaws.com/releases/48378947/e3dc8ef2-42d9-11e6-9bb7-f792463e2272.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20160705%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20160705T095843Z&X-Amz-Expires=300&X-Amz-Signature=f60d9bd1b7ab9f756623f100e0ed3fe1b53b8eded337b249fc7301508933e5c9&X-Amz-SignedHeaders=host&actor_id=7346661&response-content-disposition=attachment%3B%20filename%3Dfrp_0.7.0_linux_mips64.tar.gz&response-content-type=application%2Foctet-stream) 放上了一个 linux/mips64 的版本,这些我都没玩过,你可以测试一下看看能不能用:smile:
Author
Owner

@darcyg commented on GitHub (Jul 5, 2016):

我用的板子是mipsel(32bit),编译的c库是ulibc
估计交叉编译的不能用。

<!-- gh-comment-id:230549105 --> @darcyg commented on GitHub (Jul 5, 2016): 我用的板子是mipsel(32bit),编译的c库是ulibc 估计交叉编译的不能用。
Author
Owner

@wxyzh commented on GitHub (Aug 13, 2016):

mipsel有非官方的编译器

<!-- gh-comment-id:239609862 --> @wxyzh commented on GitHub (Aug 13, 2016): mipsel有非官方的编译器
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/frp#13
No description provided.