Я пытался выяснить и искать ответы о том, как это сделать в течение нескольких дней.
У меня есть клиент, который отправляет изображение, которое вы выбираете из FileChooser. Он должен отправить его на сервер, а сервер должен сообщить вам, что это сделано, и ширину / высоту изображения.
Клиент
private void connect() {
try {
socket = new Socket(serverIP.getText(), SERVER_PORT);
dis = new DataInputStream(socket.getInputStream());
dos = new DataOutputStream(socket.getOutputStream());
}
catch(IOException ioe) {
taLog.appendText("IO Exception: " + ioe + "\n");
return;
}
}
private void send() {
try {
fileChooser.getExtensionFilters().addAll(
new FileChooser.ExtensionFilter("Images", "*.jpg")
,new FileChooser.ExtensionFilter("Images", "*.jpeg")
);
File imgFile = fileChooser.showOpenDialog(stage);
BufferedImage bimg = ImageIO.read(imgFile);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bimg, "JPG", baos);
baos.flush();
byte[] b = baos.toByteArray();
baos.close();
}
catch(Exception e) {
taLog.appendText("Exception: " + e + "\n");
}
disconnect();
}
Сервер
public void sv_work() {
try {
sSocket = new ServerSocket(SERVER_PORT);
}
catch(IOException ioe) {
taLog.appendText("IO Exception: "+ ioe);
return;
}
Socket cSocket = null;
while(true) {
try {
cSocket = sSocket.accept();
taLog.appendText("Client connected!\n");
in = new DataInputStream(cSocket.getInputStream());
out = new DataOutputStream(cSocket.getOutputStream());
BufferedImage bimg = ImageIO.read();
System.out.println(bimg.getWidth());
System.out.println(bimg.getHeight());
}
catch(IOException ioe) {
taLog.appendText("IO Exception: "+ ioe);
return;
}
try {
cSocket.close();
in.close();
out.close();
}
catch(Exception e) {
taLog.appendText("Exception: " + e + "\n");
}
}
}
Как мне поступить? Я думаю, что я закончил с клиентом. Но не знаю, что мне нужно сделать с BufferedImage bimg = ImageIO.read()
, что идет в параметре, и после этого.