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

问题描述

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

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

具体代码:

.......
   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;
       ......
    }

解决方案

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

时间: 2025-01-19 13:27:10

c++-libuv客户端开发,通过TCP/IP连接服务端出错!的相关文章

服务器-TCP/IP 连接异常 大牛快来

问题描述 TCP/IP 连接异常 大牛快来 问题是这样的 服务器-客户端 TCP连接 出现下面两种情况 1: 在服务器这边连接的状态是establish 而在client 这端 没有任何关于连接的信息 2:客户端这边连接的状态是establish 而在service 这点 没有关于 连接的任何信息 以上两种情况 出现的环境是 1 客户端 和服务器多是在虚拟机环境下. 2 而且这个时候 客户端 和服务器 还多没有退出 不知道 什么情况下 会出现这种情况 大家 帮忙讨论讨论 牛人 牛人 快出现 我所

1433,TCP/IP连接不上数据库

问题描述 1433,TCP/IP连接不上数据库 原程序从另一台机器长拷贝,没有更改任何代码,sqlserver数据库,jdk和tomcat换了,现在运行程序,报连接不上数据库,同一台机器用.NET的VS2010就能连上数据库.拜求大神帮忙解决,14号验收,最后调试出问题了. 解决方案 同一台机器不知道你说的是和tomcat所在客户端同一台机器呢,还是和sql server服务器同一台机器.如果是前者,说明问题不在sql server的配置,检查你的jdbc驱动. 如果是后者,不说明什么问题,因为

MSSQL通过端口1433连接到主机127.0.0.1的TCP/IP连接失败

环境:SQLServer 2008 R2 + MyEclipse 6.5 + JDK 1.6.24 问题: Java通过JDBC连接 SQLServer 2008,出现如下问题:通过端口 1433 连接到主机 127.0.0.1 的 TCP/IP 连接失败.错误: "connect timed out.请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接. 解决: 1. 打开 SQLServer 配

Java连接sqlserver2005到主机的TCP/IP连接失败问题

  今天用Java连接SqlServer2005怎么也连不上,整理了一下把它贴出来希望能帮到大家.   连接SqlServer2005很有可能遇到这个问题: com.microsoft.sqlserver.jdbc.SQLServerException: 到主机的TCP/IP 连接失败. java.net.ConnectException:   Connection   refused: connect     思路一 首先看一下sqlserver2000与sqlserver2005驱动与url

sql server-大神在哪? 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。

问题描述 大神在哪? 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败. 十月 10, 2015 12:14:16 下午 com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 警告: ConnectionID:14 Prelogin error: host localhost port 1433 Unexpected end of prelogin response after 0 bytes read

通过端口1433连接到主机127.0.0.1的 TCP/IP 连接失败,错误:“connect timed out”的解决方法_java

我们在连接数据库时总会出现一些问题,今天给大家分享遇到通过端口1433连接到主机127.0.0.1的 TCP/IP 连接失败.错误:"connect timed out的解决办法. 环境:SQLServer 2008 R2 + MyEclipse 6.5 + JDK 1.6.24  问题:Java通过JDBC连接SQLServer 2008,出现如下问题:通过端口1433 连接到主机127.0.0.1 的TCP/IP 连接失败.错误:"connect timed out.请验证连接属性

bad file descriptor-使用线程的TCP回射服务端和客户端运行时错误

问题描述 使用线程的TCP回射服务端和客户端运行时错误 服务端serv.c: #include "unp.h" #include <pthread.h> void str_echo(int sockfd) { char buf[MAXLINE]; int n; while(( n = read(sockfd,buf,sizeof(buf)))>=0) { if (n ==0) { printf("client EOF,its use shutdown soc

java-关于多个不同的Ip客户端调用同一个webservice方法,服务端进行用户会话数据区分

问题描述 关于多个不同的Ip客户端调用同一个webservice方法,服务端进行用户会话数据区分 目前在写一个webservice供外部进行调用,由于要进行身份的验证,所以我在webservice的服务端加如了拦截器(客户将自己的信息写在soapHead消息中),然后在拦截器中取出soapHead中的消息,进行数据库用户信息的验证,验证通过之后才运行进行相关接口的调用.问题是在拦截器验证通过后,我要在调用的webservice接口方法中,?用到用户的身份信息去取其他相关数据.该怎么做呢? 开始我

android开发-想用socket从服务端发送图片到客户端,但一直出错,求原因

问题描述 想用socket从服务端发送图片到客户端,但一直出错,求原因 开发-想用socket从服务端发送图片到客户端,但一直出错,求原因-socket客户端和服务端"> 如图所示,本人新人,求大神解答 解决方案 空指针从无,TestActivity的64行 解决方案二: 空指针 socket 不能执行关闭操作(其实是不能操作任何操作) 最好在操作前增加判断:if(null != socket) {} 在 {} 中做处理. 解决方案三: 应该是创建socket失败了. socket不能放在