sc = SocketChannel.open();
sc.connect(isa);
sc.configureBlocking(false);
long l = 44444;
char c = 11111;
sendbuf.order(ByteOrder.LITTLE_ENDIAN); 

sendbuf.put(encode("11111111111111111111"));
sendbuf.put(encode("22222222"));
//sendbuf.putChar(c);
//sendbuf.putInt((int)11111);

sendbuf.flip();
sc.write(sendbuf);
sendbuf.compact();客户端和server传送char类型的数据没有问题。server端包头第三个字段我设置为unsigned short,所以我在java中用char来处理,结果server端接收的是
16:55:58 收到数据:1111111111111111111122222222g+
我发过去的char值是11111,将server和client端数据类型换成int,结果传过去数据也不对

解决方案 »

  1.   

    c++ server 端是用recv 来接收我传过去的网络字节序。我是用一个模拟tcp/ip server 的工具来进行测试的。。比如我putInt((int)111) 服务器端接收的是"o" 
    假如putInt((int)1) 服务器端接收的是" " (空格)假如putInt((int)11111) 服务器端接收的是"g+"
      

  2.   

    是不是用nio写得客户端不能跟其他server通信啊,不是tcp/ip协议什么都可以么