java中使用socket编程 发送16进制数据,应该如何实现??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中使用socket编程 发送16进制数据,应该如何实现??相关的知识,希望对你有一定的参考价值。

数据如下:7e 00 0e 90 00 12 4b 00 01 f6 96 0f 00 00 02 01 18 5b

参考技术A //Socket s=new Socket(xxxx参数); 
OutputStream os=s.getOutputStream();
os.write("7e 00 0e 90 00 12 4b 00 01 f6 96 0f 00 00 02 01 18 5b".getBytes());
os.flush();

参考技术B 直接发送字符串就行,数据在发送前 先处理成 16进制的追问

但是问题是 如何处理啊??
还有就是String s = ("7e 18 33 d3");类似的数据,如何处理成16进制的字符串捏?

追答

拜托 “7e 18 33 d3”就是16进制的好不好????

串口通信 基本就是这种形式的字符串,你需要考虑的就是这么编码、解析字符串

追问

不是啊,那如果我发的内容是 string s = "xy 3b 3z";那也会被翻译成16进制么?
而且我用string发,被验证是不行的啊。

追答

16进制的 字符 只有 0 1 2 3 4 5 6 7 8 9 a b c d e f 这16个字符好不,哪来的xyz之类的字符啊

参考技术C 是按字符串发、还是按ASCII发的。本回答被提问者采纳

Java 通过Socket编程 发送和接收数据

Socket client = null;
try{
    client = new Socket(Ip,Port);
    String msg="发送的数据内容!";
    //得到socket读写流,向服务端程序发送数据  
    client.getOutputStream().write(msg.getBytes());
    byte[] datas = new byte[2048];
    //从服务端程序接收数据
    client.getInputStream().read(datas);
    System.out.println(new String(datas));
}catch(Exception e){
    e.printStackTrace();
}finally {
    if (client != null) {
        try {
                client.close();
             } catch (IOException e) {
                 System.out.println("systemerr:" +e);
             }
       }
}

try{
    client = new Socket();
    SocketAddress socketAddress = new InetSocketAddress(Ip,Port);
    client.connect(socketAddress, 3000);
    String msg="访问的服务器返回内容!";
    //得到socket读写流,向服务端程序发送数据  
    client.getOutputStream().write(msg.getBytes());
    byte[] datas = new byte[2048];
    //从服务端程序接收数据
    client.getInputStream().read(datas);
    System.out.println(new String(datas));
}catch(Exception e){
    e.printStackTrace();
}finally {
     if (client != null) {
        try {
              client.close();
        } catch (IOException e) {
            System.out.println("systemerr:" +e);
        }
    }
}		

以上是关于java中使用socket编程 发送16进制数据,应该如何实现??的主要内容,如果未能解决你的问题,请参考以下文章

java的socket通信如何直接接收16进制数据

java中如何设置发送信息为16进制

Java TCP socket通信,如何实现发送十六进制值,并在数据接收窗口中显示这些数据对应的字符串,非常感谢!

Java 通过Socket编程 发送和接收数据

java socket 处理字节问题 16进制发过去 UDP 协议

JAVA串口怎么发送16进制?