java - 简单的java聊天应用程序阅读图像

标签 java client-server java-io javax.imageio

我尝试创建一个聊天应用程序,但遇到两个问题,第一个是发送表情符号时出现如下问题 enter image description here

这是我的代码(发送表情符号)

private void sendEmotion(ImageIcon emoticon, URL url) {

    try {
        Image image = emotion.getImage();
        listModel.addElement(emoticon);
        jList2.setModel(listModel);
        BufferedImage img = ImageIO.read(new File(url.toURI()));
        ImageIO.write(img, "png", s.getOutputStream());
    } catch (Exception ex) {
        Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
    }
}

阅读文字和表情

 br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        while (true) {
            // To read text
            String st = br.readLine();
            listModel.addElement(st);
           jList1.setModel(listModel);
            //to read imge
              BufferedImage image = ImageIO.read(socket.getInputStream());

              ImageIO.write(image, "png", new File("e:/image.png"));
              listModel.addElement(image);
              jList1.setModel(listModel);

        }
    } catch (IOException ex) {
        Logger.getLogger(MainServer.class.getName()).log(Level.SEVERE, null, ex);
    }

第二个问题,当从服务器向客户端发送文本和图像时,客户端无法同时读取两者(文本或图像不能同时读取)

最佳答案

我不认为您真的需要在表情符号的情况下发送图像本身。这些表情符号具有字符串表示形式,例如 :):(。因此,在发送表情符号时,您可以包含适当的字符串,并且在接收方只需匹配该字符串即可添加所需的表情并显示本地保存的图像。

关于java - 简单的java聊天应用程序阅读图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27440408/

相关文章:

java - AtomicReference<Integer> 与 AtomicInteger 之间有什么区别?

java - 为什么 getThreadAllocatedBytes 不一致?

php - 在网络服务器中运行的后台服务如何通知客户端浏览器服务的进度?

java - 如何在套接字连接中下载图像并删除不需要的字节

java - 使用 ASCII 行处理 Java IO 的最快方法

Java::为什么这个带有内存的斐波那契数列的实现不起作用?

Java 是否支持默认的参数值

java - 在 Java 中从传入字符串创建文件

java - UDP Code客户端服务器架构

读取 .csv 文件时出现 java.io.FileNotFoundException