haibintalk 2013-11-21 09:41 采纳率: 100%
浏览 4856
已采纳

libuv客户端开发,通过TCP/IP连接服务端出错!

使用libuv进行客户端开发,在Linux下测试没有问题,当移植到win7下面就报错了,错误信息如下:
Valid XHTML

具体代码:

.......
   void uv_write_cb(uv_write_t *req,int status)
    {
        if(status == -1)
        {
            cout<<"error on_write_end"<<endl;
            return;
        }
        //cout<<"write_end!!!"<<endl;
        req->handle->data = req->data;

        uv_read_start(req->handle,alloc_buffer,uv_read_cb);
        //req->handle->loop->stop_flag = 1;
    }

......
    void connect_server(uv_connect_t *req,int status)
    {
            ......
            char buffer[100];
            uv_buf_t buf = uv_buf_init(buffer,sizeof(buffer));

            buf.len = strlen(fileName)+1;
            buf.base = fileName; 
            uv_stream_t* tcp = req->handle;

            uv_write_t write_req;
            write_req.data = req->data;
            int buf_count = 1;
        uv_write(&write_req,tcp,&buf,buf_count,client::uv_write_cb);
            ......
    }






    int _tmain(int argc, _TCHAR* argv[])
    {
       ......
       _loop = uv_default_loop();
       uv_tcp_t socket;
       uv_tcp_init(_loop,&socket);
       uv_connect_t connect;
       connect.data = (void*)this;
       //struct sockaddr dest;
       struct sockaddr_in dest;
       uv_ip4_addr(_ipaddr.c_str(),_port,&dest);
       //struct sockaddr addrInfo;

       uv_tcp_connect(&connect,&socket,(const struct sockaddr*)&dest,connect_server);

       uv_run(_loop,UV_RUN_DEFAULT);
       return 0;
       ......
    }
  • 写回答

1条回答 默认 最新

  • haibintalk 2013-11-26 03:20
    关注

    已经解决!
    问题分析:
    局部变量引起loop捕获不到事件。
    解决方法:
    把和uv相关的修改为全局的变量就没问题了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵