我尝试创建一个聊天应用程序,但遇到两个问题,第一个是发送表情符号时出现如下问题
这是我的代码(发送表情符号)
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/