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