Я пытаюсь отправить массив ByteBuffer над сокетом на порт 25565 на адрес «localhost». Но по какой-то причине Java бросает исключение сброса соединения при выполнении input.read(). Может кто-нибудь, пожалуйста, скажите мне, что происходит?Исключение сбрасывания Socket - Java
Отправитель:
private static Socket socket;
public static void main(String[] args) throws IOException {
socket = new Socket("localhost", 25565);
String Password = "1234";
ByteBuffer Buffer = ByteBuffer.allocate(1 + Password.getBytes().length);
Buffer.put((byte) 0x00);
Buffer.putShort((short) Password.getBytes().length);
Buffer.put(Password.getBytes());
DataOutputStream output = new DataOutputStream(socket.getOutputStream());
output.write(Buffer.array());
}
public static void sendBytes(byte[] myByteArray) throws IOException {
DataOutputStream output = new DataOutputStream(socket.getOutputStream());
output.write("LOL".getBytes());
output.flush();
}
Приемник:
public static void main(String[] args) {
try {
ServerSocket ServerSocket = new ServerSocket(25565);
System.out.println("Waiting for connection...");
Socket socket = ServerSocket.accept();
DataInputStream Input = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
System.out.println(Input.read());
ServerSocket.close();
socket.close();
} catch (Exception e) {
if(e instanceof SocketTimeoutException) {
System.out.println("THE SOCKET TIMED OUT!");
}
else {
e.printStackTrace();
}
}
}
Стек след:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:189)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
at java.io.FilterInputStream.read(FilterInputStream.java:83)
at net.networking.Receiver.main(Receiver.java:17)
ПРИМЕЧАНИЕ: Да, я знаю, что только с помощью input.read() не получит весь массив ByteBuffer, который я пытаюсь отправить. Но сейчас я просто хочу прочитать первый байт и распечатать его на консоли.
Хорошо будет попробовать. – Whirvis
Все еще не работает, попробовал то, что вы сказали. Не могли бы вы выслать мне точное исправление кода, которое вы предлагали? Я просто хочу убедиться, что я ставлю то, что вы имеете в виду. – Whirvis
Как и в, скопируйте и вставьте код. – Whirvis