udp在发送中文数据包(英文没有影响)只接收到一半,是什么原因怎么解决呀

litish 2003-06-15 03:21:03
我在想可能是编码的问题,在改了编码之后长度够了,可是不能正常显示中文都为????
...全文
73 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
litish 2003-06-23
  • 打赏
  • 举报
回复
哎????
litish 2003-06-23
  • 打赏
  • 举报
回复
还是不行呀
newman0708 2003-06-20
  • 打赏
  • 举报
回复
还没有解决吗!

应该能行了吧!

liuhealth 2003-06-18
  • 打赏
  • 举报
回复
顶一下
我正愁这个问题不能解决呢
呵呵
newman0708 2003-06-17
  • 打赏
  • 举报
回复
1)在接收数据时packet=new DatagramPacket(buf,m_nArraySize);数组应越大越好
在发送数据时packet=new DatagramPacket(buf,buf.length,address,port);应该根据实际的大小
litish 2003-06-17
  • 打赏
  • 举报
回复
littlecpu(嘿,哥们,你欠我分,快给咯)你的方法我试过了,不行呀.中文时接受不全
发送:
String s = sendmessage.getText().trim();
byte[] data = s.getBytes("UTF-8");
Clientwindow.sendPacket = new
DatagramPacket(data, s.length(), InetAddress.getByName(theip),
theport);

接收:
byte[] buffer = new byte[1024];
receivePacket = new DatagramPacket(buffer, buffer.length);
receiveSocket.receive(receivePacket);
byte[] data = receivePacket.getData();
received = new String(data,"UTF-8");
tanghuan 2003-06-16
  • 打赏
  • 举报
回复
首先你要知道你发送的时候用的是什么样的编码。

在接收时把你发送的编码转化为ISO-88591编码格式再显示,就没有问题了
zhutg 2003-06-16
  • 打赏
  • 举报
回复
发送和接受的编码方式一样就可以了
littlecpu 2003-06-15
  • 打赏
  • 举报
回复
received = new String(data,"UTF-8");
litish 2003-06-15
  • 打赏
  • 举报
回复
我接收是这样做的不知怎样进行转码?


byte[] buffer = new byte[1024];
receivePacket = new DatagramPacket(buffer, buffer.length);
receiveSocket.receive(receivePacket);
byte[] data = receivePacket.getData();
received = new String(data, 0, data.length);
littlecpu 2003-06-15
  • 打赏
  • 举报
回复
你这个算是典型的编码问题吧

你都用UTF发和收

byte[] sendmsgs = String.getBytes("UTF-8");
send...


java.io.BufferReader br = new java.io.BufferReader(new java.io.inputStreamReader(in, "UTF-8")

while((String s=br.readline())!=null)
{
...
}

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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