我觉得是包文长度的问题.java用byte数组, c/c++用char数组
这种模式经常用,没问题

解决方案 »

  1.   

    你是用的什么?? TCP还是UDP??? VC中的数据发送都是实时的啊。
      

  2.   

    kingfish(八百里秦川@龙城异客),如果是你所说的问题的话,该怎么解决啊?
    tabby(-_-! .. 内存泄漏) ,我用的是TCP,不知道啊!现在出现的问题是他给我发送过来的数据我收不到!
    还有,有人建议我java服务器端接收数据的程序应该改为接收二进制的方式,而不是用readLine()的方式!
      

  3.   

    我原来的程序如下:
    PrintWriter out = new PrintWriter(socket.getOutputStream(), true); 
    BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream()));
     
    String inputLine, outputLine; 
    out.println("<?xml version='1.0' encoding='ISO-8859-1'?><txnreq><syscode>0101</syscode><sysword>等待数据包</sysword></txnreq>"); 
    out.flush();
    while ((inputLine=in.readLine())!=null) { 
    outputLine = inputLine;
    out.println(outputLine); 
    out.flush();

    修改后的程序如下:
    PrintWriter out = new PrintWriter(socket.getOutputStream(), true); 
    BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream()));
     
    String inputLine, outputLine; 
    out.println("<?xml version='1.0' encoding='ISO-8859-1'?><txnreq><syscode>0101</syscode><sysword>等待数据包</sysword></txnreq>"); 
    out.flush();
    boolean a = true;
    while (a){
    System.out.println(in.read());
    }
    这样的话,用in.read()就可以得到用VC开发的客户端发送过来的信息!
    但是,用in.read()的话我们java服务器端还得对发送过来的二进制流进行重新组合!
    有没有我们java服务器端用in.readLine()就可以读到VC开发的客户端发送过来的信息的方法?
      

  4.   

    readLine()读到 "\n\r" 才结束read()后转吧