yasasii--久 2022-07-12 10:27 采纳率: 0%
浏览 8

UDP实现聊天出现没见过的符号

我在使用UDP实现聊天的时候发送消息的后边总有一长串长方形里面一个叉的符号(这里打不出来,可以百度一下),想问一下是idea设置有问题还是代码写错了,求各位解答一下,万分感谢!

例如:
我使用发送端给接收端发送“a”
接收端收到的消息是“a(后边一串长方形里面一个叉的符号)”

还有我想在输入bye的时候断开连接,发送端在发送完bye后就会断开,但是接收端还在接收。

代码如下

//接收端
public static void main(String[] args) throws Exception{
        DatagramSocket socket = new DatagramSocket(6666);

        while (true){
            //准备接收包裹
            byte[] container = new byte[1024];
            DatagramPacket packet = new DatagramPacket(container,0,container.length);
            socket.receive(packet);//阻塞式接收包裹
            //断开连接 bye
            byte[] data = packet.getData();
            String receiveData = new String(data, 0, data.length);
            System.out.println(receiveData);
            if (receiveData.equals("bye")){
                break;
            }

        }
        socket.close();

    }
//发送端
public static void main(String[] args) throws Exception{
        DatagramSocket socket = new DatagramSocket(8888);

        //准备数据:控制台读取 System.in
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        while (true){
            String data = reader.readLine();
            byte[] datas = data.getBytes();

            DatagramPacket packet = new DatagramPacket(datas,0,datas.length,new InetSocketAddress("localhost",6666));
            socket.send(packet);
            if (data.equals("bye")){
                break;
            }
        }


        socket.close();

    }

  • 写回答

1条回答 默认 最新

  • 於黾 2022-07-12 10:42
    关注

    data 是个byte数组
    你要转string,就要看之前它是如何从string转成byte的,然后对应的转回来,不能瞎转呀
    byte[] bytes = "hello world".getBytes();
    //Base64 Encoded
    String encoded = Base64.getEncoder().encodeToString(bytes);
    //Base64 Decoded
    byte[] decoded = Base64.getDecoder().decode(encoded);

    评论

报告相同问题?

问题事件

  • 创建了问题 7月12日

悬赏问题

  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决