UDP传输中文乱码、异常解决

来源:互联网 发布:网络有利还是有害 编辑:程序博客网 时间:2024/06/05 10:29

Java socket编程,遇到UDP传输中文乱码、传输内容被异常截断等问题,查阅网上资料建议使用流的方式解决,所以试了一下,问题解决。

完整代码如下:

    public class MudpSrv {                    int port = 6789;                    public void sendMessage(String msg,MulticastSocket socket) throws IOException{              ByteArrayOutputStream ostream = new ByteArrayOutputStream();              DataOutputStream dataStream = new DataOutputStream(ostream);              dataStream.writeUTF(msg);              dataStream.close();                            byte[] data = ostream.toByteArray();                            InetAddress address = InetAddress.getByName("230.3.3.3");              socket.joinGroup(address);              DatagramPacket dp = new DatagramPacket(data, data.length, address,port);              socket.send(dp);          }                    public void getMessage(MulticastSocket socket) throws IOException{              byte[] bs = new byte[1000];              DatagramPacket packet = new DatagramPacket(bs, bs.length);              socket.receive(packet);                            DataInputStream istream = new DataInputStream(new ByteArrayInputStream(packet.getData(), packet.getOffset(), packet.getLength()));                            String msg = istream.readUTF();                            System.out.println(msg);          }                    public static void main(String args[]) throws IOException{              MudpSrv srv = new MudpSrv();              MulticastSocket socket = new MulticastSocket(srv.port);              srv.sendMessage("妈妈再也不用担心我的学习",socket);              srv.getMessage(socket);          }            }  

0 0