zoukankan      html  css  js  c++  java
  • java发送固定字节到C++接口

    需求:java工程需要发送一个socket消息到C++接口,C++接口中规定了若干个参数,并且每个参数的长度是固定的,起始位置也是固定的,

    C++那边是GB2312编码,java这边是UTF-8。

    现象:一开始用StringBuffer拼接字符串,最后转成byte[]发送,发现英文的字符是没有问题的,中文的就会存在长度变动或参数起始位置偏移现象。

    解决:直接生成符合总长度要求的byte数组---A,对每个参数值进行转码后得到byte数组---B,把B赋予A。

    代码如下:

      1: 
    
      2: import java.io.OutputStream;
    
      3: import java.net.InetSocketAddress;
    
      4: import java.net.Socket;
    
      5: 
    
      6: public class Test {
    
      7: 
    
      8:   public static void main(String[] args) throws Exception {
    
      9:     String paraString = "中国A";
    
     10:     byte[] bytes = paraString.getBytes("GB2312");
    
     11:     byte[] byteMsg=new byte[100];
    
     12:     for (int i = 0; i < bytes.length; i++) {
    
     13:       byteMsg[i] = bytes[i];
    
     14:     }
    
     15:     OutputStream out = null;
    
     16:     Socket socket = new Socket();
    
     17:     socket.connect(new InetSocketAddress("192.168.6.201", Integer.parseInt("60000")), 30000);
    
     18:     out = socket.getOutputStream();
    
     19:     out.write(byteMsg);
    
     20:     socket.close();
    
     21:   }
    
     22: 
    
     23: }
  • 相关阅读:
    Python
    Html body的滚动条禁止与启用
    wampserver 更改www目录
    Linux下的tar压缩解压缩命令详解
    Linux 重置root密码
    Ubuntu增加一个用户并给普通用户赋予root权限的方法
    redhat系统下三种主要的软件包安装方法
    Linux 添加yum命令
    如何退出 Vim
    Linux ssh开启服务
  • 原文地址:https://www.cnblogs.com/huiy/p/5488184.html
Copyright © 2011-2022 走看看