go语言和c++通信的例子

这是一个使用C++的Boost库和Go语言实现TCP通信的例子。C++端作为Echo Server,接收到Go客户端的连接请求后,将结构体music的数据发送回Go端进行解析。Go端通过Dial连接服务器,读取并解析结构体数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

boost 写的一个echo server ,收到 go发起的连接之后会把一个结构体的内容发送给go一边,go语言进行解析,直接贴代码

c++


#include <cstdlib>
#include <iostream>
#include <boost/bind.hpp>
#include <boost/asio.hpp>

using boost::asio::ip::tcp;

struct music
{
    uint32_t id;
    char name[128];
    char type[128];
};
struct music m
{
 id:3225,
 name:"my heart will go on",
 type:"mp3@mp4"
};
class session
{
public:
  session(boost::asio::io_service& io_service)
    : socket_(io_service)
  {
  }

  tcp::socket& socket()
  {
    return socket_;
  }

  void start()
  {
    socket_.async_read_some(boost::asio::buffer(data_, max_length),
        boost::bind(&session::handle_read, this,
          boost::asio::placeholders::error,
          boost::asio::placeholders::bytes_transferred));
  }

private:
  void handle_read(const boost::system::error_code& error,
      size_t bytes_transferred)
  {
    if (!error)
    {
       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值