Я пытаюсь создать простое приложение в Java для отправки сообщений на сервер.Когда я запускаю приложение, я получаю BindException (адрес уже используется) на сервере, хотя у меня нет процесса, использующего порт 4344 (я пытался изменить номер порта, но исключение всегда выдается).Несмотря на это, сообщение попадает на сервер и отображается сообщение.
Код сервера:
import java.io.DataInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.TimeUnit;
import javax.swing.JOptionPane;
public class Server implements Runnable {
public static void main(String[] args){
Server s = new Server();
s.run();
}
public Server() {
Thread serverThread = new Thread(this);
serverThread.start();
}
@Override
public void run() {
try {
ServerSocket serverSocket = new ServerSocket(4344);
while(true) {
Socket clientSocket = serverSocket.accept();
DataInputStream inputSocket = new DataInputStream(clientSocket.getInputStream());
System.out.println(inputSocket.readUTF());
inputSocket.close();
clientSocket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Код клиента:
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.swing.JOptionPane;
public class Client {
Socket serverConnection;
String serverIp = "192.168.182.1";
public static void main(String[] args){
Client c = new Client();
}
public Client() {
sendMessage("message");
}
public void sendMessage(String msg) {
try {
serverConnection = new Socket(serverIp, 4344);
DataOutputStream dataOutput = new DataOutputStream(serverConnection.getOutputStream());
dataOutput.writeUTF(msg);
dataOutput.close();
serverConnection.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}