udp接受数据包为乱码

wangleileo 2010-06-12 05:09:06
接受2055端口发送过来的数据,显示乱码
程序如下:
package test;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class UdpTest{

/**
* @param args
*/
public static void main(String[] args) {
byte[] buf = new byte[1000];
//开始监视2055端口
DatagramSocket ds = null;
try {
ds = new DatagramSocket(2055);
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//创建接收数据报的实例
DatagramPacket ip = new DatagramPacket(buf, buf.length);
while (true)
{
//阻塞,直到收到数据报后将数据装入IP中
//receive方法返回时,DatagramPacket的缓冲区填充了接收的数据,数据报包包含
//发送方的 IP 地址和发送方机器上的端口号。此方法在接收到数据报前一直阻塞。
try {
ds.receive(ip);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(new String(buf));
}

}

}

输出结果是乱码
^?掛v纸?

...全文
597 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangleileo 2010-06-15
  • 打赏
  • 举报
回复
都试过,没用啊,还是乱码
colin_pxx 2010-06-12
  • 打赏
  • 举报
回复
将点页面、Action等右键->properties在test file encoding的地方选择UTF-8
  • 打赏
  • 举报
回复
给你看我以前的SoketServer的代码,你对照一下吧:

public class UDPServer {
public static void main(String[] args) {
byte[] bufferIn=new byte[26];
byte[] bufferOut;
try {
DatagramSocket ds=new DatagramSocket(13);
System.out.println("UDP Server actived on port 13..." );
int num=0;
while(num<100){
num++;
DatagramPacket packetIn=new DatagramPacket(bufferIn,bufferIn.length);
ds.receive(packetIn);
InetAddress ia=packetIn.getAddress();
int port=packetIn.getPort();
String str=new String(bufferIn);
str=str.toUpperCase();
bufferOut=str.getBytes();
System.out.println("["+num+"] "+ia.toString()+":"+port);
DatagramPacket packetOut=new DatagramPacket(bufferOut,bufferOut.length,ia,port);
ds.send(packetOut);
}

ds.close();

} catch (Exception e) {
e.printStackTrace();
}

}

}
dr_lou 2010-06-12
  • 打赏
  • 举报
回复
传中文了吧?
new String(buf,"utf-8");
luozhangwen 2010-06-12
  • 打赏
  • 举报
回复
byte[] buf = new byte[1000];

这里一看就不正常.

至少应该是获得流, 然后在流里面获得所以的byte[] 再转换为String

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧