gpt4 book ai didi

c++ - 通过 C++ 与 erlang 服务器通信(发送二进制文件)

转载 作者:行者123 更新时间:2023-11-28 02:09:22 25 4
gpt4 key购买 nike

我一直在使用 erlang、sfml 和 c++ 开发一个项目,以创建一个网络游戏。我已经完成了来自 erlang 的通信 - erlang 取得了一些成功,但是我在集成 c++ 时遇到了一些问题。

以前我能够以这种格式发送数据(从“客户端”):

 gen_tcp:send(Socket, term_to_binary({Cmd, Parameters}));
gen_tcp:send(Socket, term_to_binary({Cmd, {P1, P2}, P3}));
gen_tcp:send(Socket, term_to_binary({Cmd}));
gen_tcp:send(Socket, term_to_binary({Cmd, Msg}));

并使用案例处理数据:

client_handler(Socket) ->
io:format("Waiting for data...~n", []),

case gen_tcp:recv(Socket, 0) of
{ok, Bin} ->
Cmd = binary_to_term(Bin),
io:format("Command '~p' received.~n", [Cmd]),

case Cmd of
{register, NewAtom} ->
%%Do Stuff
{update_transform, {X,Y}, Rot} ->
%%Do Stuff
{get_transform} ->
%%Do Stuff
{send_message, Msg} ->
%%Do Stuff
_ ->
%%Do Stuff
end,

client_handler(Socket);

{error, _} ->
io:format("Lost connection to client!~n", [])
end.

有什么方法可以让我使用 C++ 像这样发送数据吗?我意识到它只是构建二进制字符串,但我不知道数据需要以什么格式显示,直到现在我还没有使用 C++ 的经验

提前致谢!!!

最佳答案

C++/C 可以使用 ei library将数据编码为 Erlang 术语,通过套接字发送 Erlang 应用程序,以及接收和解码 Erlang 术语。编写这样的 C++/C 应用程序很乏味,但一旦您准备好基本代码,它就会运行良好。

也可以编写一个非 Erlang 节点,称为 C node ,通过 Distributed Erlang 与 Erlang 节点通信.您可以使用 JInterface package 对 Java 执行相同的操作.对于 Erlang 节点,这样的节点只是其集群中的另一个节点。与 ei 应用程序一样,编写此类节点可能很乏味,但当您拥有非 Erlang 代码并希望无缝且安全地集成到 Erlang 集群中时,它们会很方便。

关于c++ - 通过 C++ 与 erlang 服务器通信(发送二进制文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36289091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com