Как ускорить передачу изображений?
делаю программу,которая передает изображения от клиента к серверу. Эти изображения должны передаваться быстро,что-бы создавалось видео на сервере. Я использую сокеты для этого.При тестировании программы на localhost изображения передавались с низкой скоростью.При тестировании на другом пк в локальной сети(wifi),скорость заметно падала. Примерно так я передаю изображения:
while(true){
//capture screen
BufferedImage image = robot.createScreenCapture(rectangle);
ImageIcon imageIcon = new ImageIcon(image);
//send captured screen to the server
try{
oos.writeObject(imageIcon);
System.out.println("image sended");
oos.reset();//clear objectOutputStream cache
}catch(IOException ex){
ex.printStackTrace();
}
//wait for 100ms to reduce network traffic
try{
Thread.sleep(100);
}catch(InterruptedException ex){
ex.printStackTrace();
}
}
Как можно ускорить передачу и есть ли смысл использовать DatagramSockets? Спасибо
Ответы (1 шт):
Автор решения: dmtr
→ Ссылка
- Поднять сокет на сервере на TCP протокол
- Поднять сокет у клиента на TCP протокол
- Направлять байты в сокет сервера
- Получать байты из сокета клиента
Если будут проблемы с реализацией, помогу с кодом.