public void run() throws IOException {
server = new ServerSocket(port) {
protected void finalize() throws IOException {
this.close();
}
};
System.out.println("Server is running on port 12345");
while (true) {
// accepts a new client
Socket client = server.accept();
// get nickname of newUser
String nickname = (new Scanner ( client.getInputStream() )).nextLine();
nickname = nickname.replace(",", ""); // ',' use for serialisation
nickname = nickname.replace(" ", "_");
System.out.println("New Client: \"" + nickname + "\"\n\t Host:" + client.getInetAddress().getHostAddress());
// create new User
User newUser = new User(client, nickname);
// add newUser message to list
this.clients.add(newUser);
// Welcome msg
newUser.getOutStream().println(
"<img src='http://localhost:8000/welcome.gif' height='42' width='42'>"
+ "<b>Welcome</b> " + newUser.toString() +
"<img src='https://www.kizoa.fr/img/e8nZC.gif' height='42' width='42'>"
);
// create a new thread for newUser incoming messages handling
new Thread(new UserHandler(this, newUser)).start();
}
}
У меня есть http-сервер, который отправляет статические файлы.Поэтому, если я наберу localhost:8000/welcome.gif
в браузере, http-сервер отправит изображение в браузер.Но я хочу, чтобы клиент Java получил это изображение.
Вот класс, который читает любые новые сообщения от клиента
class Read extends Thread {
public void run() {
String message;
// till the this thread is interupted, it reads an input
// from the server
while(!Thread.currentThread().isInterrupted()){
try {
message = input.readLine();
System.out.println("Message sent from server is: "+message);
if(message != null){
// if the client accepts broadcast user message from
// the server, it must update their lists.
if (message.charAt(0) == '[') {
message = message.substring(1, message.length()-1);
ArrayList<String> ListUser = new ArrayList<String>(
Arrays.asList(message.split(", "))
);
jTextPane2.setText(null);
for (String user : ListUser) {
appendToPane(jTextPane2, "@" + user);
}
} else{
appendToPane(jTextPane1, message);
}
}
}
catch (IOException ex) {
System.err.println("Failed to parse incoming message");
}
}
}
}
Когда сервер отправляет,
"<img src='http://localhost:8000/welcome.gif' height='42' width='42'>"
+ "<b>Welcome</b> " + newUser.toString() +
"<img src='https://www.kizoa.fr/img/e8nZC.gif' height='42' width='42'>"
клиенту, он печатает не удалось проанализировать входящие сообщения.Но второе изображение с src, https://www.kizoa.fr/img/e8nZC.gif, отображается.
Любая помощь высоко ценится.