Добрый день есть код
SocketAddress socketAddress = new InetSocketAddress(HOST, PORT);
SocketChannel socketChannel = SocketChannel.open();
socketChannel.connect(socketAddress);
FileChannel fileChannel = new RandomAccessFile(file, "r").getChannel();
fileChannel.transferTo(0, fileChannel.size(), socketChannel);
как я понимаю он для передачи файла. Нужен соотвецтвующий код со стороны получателя. Еще хотел спросить можно таким способом передавать видео, картинки, архивы. Если нет то дайте пожалуйста ссылку на ресурс где об этом можно прочесть.
Сервер принимающий файл:
public class NioServer {
private static final int PORT = 1234;
private static final String FILE_NAME = "image.jpg";
public static void main(String args[]) throws IOException {
try (ServerSocketChannel serverSocketChannel = ServerSocketChannel.open()) {
serverSocketChannel.bind(new InetSocketAddress(PORT));
try (SocketChannel socketChannel = serverSocketChannel.accept()) {
try (FileChannel fileChannel = FileChannel.open(Paths.get(FILE_NAME), StandardOpenOption.CREATE, StandardOpenOption.WRITE)) {
fileChannel.transferFrom(socketChannel, 0, Long.MAX_VALUE);
}
}
}
}
}
Клиент передающий файл:
public class NioClient {
private static final int PORT = 1234;
private static final String HOST = "localhost";
private static final String FILE_NAME = "image.jpg";
public static void main(String args[]) throws IOException {
InetSocketAddress serverAddress = new InetSocketAddress(HOST, PORT);
try (SocketChannel socketChannel = SocketChannel.open(serverAddress)) {
try (FileChannel fileChannel = FileChannel.open(Paths.get(FILE_NAME))) {
fileChannel.transferTo(0, fileChannel.size(), socketChannel);
}
}
}
}
Таким способом можно передавать видео, картинки и архивы.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей