lianghaoming7
lianghaoming7
采纳率0%
2016-01-10 14:18 浏览 3.9k

websocket 用c++编写客户端的问题

用MFC CAsyncSocket这个类的socket与服务器connect之后,

我发送了头:Sec-WebSocket-Key,Sec-WebSocket-Version: 13 等内容
等取得了服务器返回的应答:Sec-WebSocket-Accept,Upgrade:Websocket等内容
应该是握手成功了。

之后我在用CAsyncSocket的send发送文本过去服务器就没有返回数据了,服务器也木有向我返回数据。是不是发送的数据要经过编码或者是什么?

请问有websocket 用c++编写客户端 示例代码吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答 默认 最新

  • devmiao devmiao 2016-01-10 16:12
    点赞 1 评论 复制链接分享
  • oyljerry oyljerry 2016-01-10 14:19

    应该维持一个心跳包来维持websocket的连接

    点赞 评论 复制链接分享
  • lianghaoming7 lianghaoming7 2016-01-10 14:51

    图片说明

    点赞 评论 复制链接分享
  • John_ToStr John_ToDebug 2016-01-13 01:46

    CSocket sockect;
    sockect.Create();
    CString ip =_T( "192.168.0.157");
    bool ret = sockect.Connect(ip,8080);
    if (ret)
    {
    Json::Value root;
    root["lsh"] = "1234567890123";
    root["clbh"] = "j001";
    root["clbh"] = "j001";
    root["kskm"] = "1";
    root["sfzhm"] = "12345678";
    root["kssj"] = "2015/11/25 9:52:12";
    root["czlx"] = "0";

        string ss = root.toStyledString();
        string strlen;
    
        int len = ss.size();
        stringstream temp;
        temp.fill('0');
        temp.width(4);
        temp << len;
        temp >> strlen;
    
        // char *p = new char[len + 10];
        string data = "$$";
        data.append("12");
        data.append(strlen);
        data.append(ss);
        data.append("FF");
        sockect.Send(data.c_str(), data.size());
        sockect.Close();
    }
    
    大概看一下,我估计是服务器的问题。。。
    
    点赞 评论 复制链接分享

相关推荐