java UDP通信中十六进制的接收与发送

找了网上通用的UDP程序,当用字符串发送时如"1234567890",我这边接到显示的也有"1234567890",然而,当那边用16进制发时,我收到的是:"4vx3F"... 找了网上通用的UDP程序,当用字符串发送时如"1234567890",我这边接到显示的也有"1234567890",然而,当那边用16进制发时,我收到的是:
"
4
v
x
3F"
每两个字节为一组输出,且当数据中第一位为8或9时输出的均为3F,我想正常接收十六进制啊....急,关键是看不到解析这个数据包的过程,不知它是接的是什么,以何种形式解析为String。高手帮帮我...
我写的程序如下:

public class Test {
public Test(){

try {
byte[] buf = new byte[1024];
DatagramSocket ds = new DatagramSocket(8000);
DatagramPacket dp = new DatagramPacket(buf, buf.length);
while (true) {
Arrays.fill(buf,(byte)0);
ds.receive(dp);
String x = new String(dp.getData(),0,dp.getLength());
System.out.println(x);

}
}

catch (SocketException e1) {
System.out.println("SocketException");}
catch (UnknownHostException e11) {
System.out.println("UnknownHostException");}
catch (IOException e) {
System.out.println("IOException");}
}

public static void main(String[] args){
new Test();
}

}
展开
 我来答
雪过了无痕
2010-06-10 · TA获得超过234个赞
知道小有建树答主
回答量:275
采纳率:0%
帮助的人:269万
展开全部
接受和发送都是针对byte而言的
你要是发送16进制 就先把16进制数转换成byte数组
同理接收时候先接收byte数组 在转成16进制就是了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式