用Vc做了一个Server.,我想用Java与其进行socket通讯,我用最基本的byte进行数据传送,  
互相之间传送int和float类型基本没有问题,但是无法传送字符串类型,vc服务器帧听到了。但是不能接收信息.从vc向java传也不行!  
请问怎么做呢?拜托能解释的详细一点!  
谢谢!
我也考虑到编码的问题  java是unicode,但是还是不行! 
java端的程序:  
String  str=  "abcd  ";      
int  n=str.length();  
byte  m[];  
m=new  byte[n];  
m=str.getBytes();//m是已经去过高字节的字符了。  
out.write(m,0,4);  
vc端的程序:  
   byte  y[4];  
sConnect.Receive((char  *)&y,4*sizeof(byte),10);  
 
是不是我这样写不对

解决方案 »

  1.   

    vc端的程序:  
       char  y[1024];  
    sConnect.Receive((char  *)&y,4*sizeof(byte),1024);
      

  2.   

    可能你的VC程序已经接收到了.检查两点:
    1、接收缓冲区似乎太小了,改用chinasms()提供的办法,增大缓冲区。
    2、接收到缓冲区y之后,y缓冲区保存的是unicode字符串,所以必须经过转换。你可以这样简单地转换:CString strRec( _T(y) );
      

  3.   

    java字符串是UNICODE形式,
    String  str=  "abcd  ";      
    int  n=str.length();  
    byte  m[];  
    m=new  byte[n];  //-------------try as this--------------------
    m=str.getBytes("US-ASCII");//m是已经去过高字节的字符了。  
    //----------------------------------out.write(m,0,4);  
    vc端的程序:  
       byte  y[4];  
    sConnect.Receive((char  *)&y,4*sizeof(byte),10);