Исключение нулевого указателя при передаче файлов между сервером и клиентом
Я разрабатываю программу передачи файлов между серверами на java и не могу понять, как исправить следующий код, так как я не очень разбираюсь в программировании сокетов. Код - это коды клиента:
String receiverIP = null;
int serverPort = 0;
hostIP = args[0];
serverPort = Integer.parseInt(args[1]);
String fileToSend = args[2];
byte[] aByte = new byte[1];
int bytesR;
Socket clientSocket = null;
Socket connectSocket = null;
BufferedOutputStream ToClient = null;
InputStream is = null;
try {
ToClient = new BufferedOutputStream(connectSocket.getOutputStream());
clientSocket = new Socket(hostIP, serverPort);
is = clientSocket.getInputStream();
} catch (IOException ex) {
System.out.println(ex);
}
Что касается моей проблемы, я получаю исключение нулевого указателя в строке 14 (несомненно, так как в настоящее время connectSocket имеет значение null), но я понятия не имею, что я могу назначить для connectSocket(если бы он был на стороне сервера, сокет для принятия подключения мог быть назначен начать писать после установления соединения.)
1 ответ
Вопреки тому, что вы, похоже, считаете, вам не нужны два отдельных сокета для чтения и записи на сервер. Одной розетки будет достаточно. Вы можете позвонить getInputStream
способ получить поток для чтения с сервера, и getOutputStream
получить поток для записи на сервер. Вам не нужны две розетки, только одна.