如果是死在accept的话证明你根本就没收到设备端发来的连接请求。listen怎么不带参数?

解决方案 »

  1.   

    CSocket是同步阻塞的套接字
    如果没有收到请求的话,Accept会一直阻塞。
    否则就是IP地址、端口或什么参数写错了。
      

  2.   


    你好,请问用其他软件测试,都收到了返回数据,为什么这个收不到呢?
    这段代码以前有连接和发送,
    CSocket sockClient;
    sockClient.Create();
    conn=sockClient.Connect(192.168.1.123,502)byte msg[12]={0};
    sockClient.Send(msg,12)
    之后通过“////接收并判断返回数据”的代码接收并判断返回的数据。
      

  3.   


    IP和端口肯定没有错,用其他测试软件测试都能收到正确的返回数据的。
    就是没有收到数据阻塞了,请问您知道怎么修改吗?用其他软件测试,都收到了返回数据,为什么这个收不到呢?
    这段代码以前有连接和发送,
    CSocket sockClient;
    sockClient.Create();
    conn=sockClient.Connect(192.168.1.123,502)byte msg[12]={0};
    sockClient.Send(msg,12)
    之后通过“////接收并判断返回数据”的代码接收并判断返回的数据。
      

  4.   


    listen不带参数不是默认为5吗?这个影响accept收到数据吗?
      

  5.   


    listen不带参数不是默认为5吗?这个影响accept收到数据吗?如果你是停在Accept了肯定是没有接收到来自设备端的连接,如果是停在recv这里才是没有接受到数据的到来,还有你用其它软件测试,实现方式和你的一样吗?
      

  6.   

    最好的方法就是直接放弃CSocket,改用标准socket
    反正你以后在实际开发过程中
    基本不会使用CSocket的
      

  7.   

    支持7楼,放弃CSocket吧,使用标准socket
    或者使用其他的socket库,例如boost的asio