我试验了,为什么传递short,也就是无符号两字节数据,编译通不过。做法如下:增加一个short转换类
private static byte[] toLH(short n) {
    byte[] b = new byte[2];
    b[0] = (byte) (n & 0xff);
    b[1] = (byte) (n >> 8 & 0xff);
    return b;
  }
仿造您的代码写的,不知道对不对。
然后多发送一个short类型数据
sock.getOutputStream().write(new Employee(0xFFFF,"kingfish", 123456789, 8888.99f).getBuf());
编译报错
cannot resolve symbol constructor JavaToC (int,java.lang.String,int,float)
如果对short做强制转换,
sock.getOutputStream().write(new Employee((short)0xFFFF,"kingfish", 123456789, 8888.99f).getBuf());
编译通过

解决方案 »

  1.   

    还有个疑问,就是我这边发字节数组,对方接收没问题吧,您是做银行软件,应该这些方面比较熟悉。因为我在这里还没有c服务器环境,想先通过对方提供的包协议调试得差不多,然后到现场好一点。您的blog没有提到对方发struct,这边怎么收,不过我看到了一个技术白皮书,应该有解释,我先看看,原版的资料看的时间会长点,弄懂了与大家分享。