Я пытаюсь создать простое приложение чата в Java. Сейчас у меня проблемы с подключением к моему серверу. Всякий раз, когда я открываю чат, приложение останавливается, и моя мышь превращается в вертушку. окно сообщения не открывается, и закрытие программы на intellij - единственный способ остановить его.
Я попытался напечатать свой локальный порт, и я использую результат в качестве текущего порта, поэтому я знаю, что это не проблема. Я просматривал некоторые учебники в Интернете и не думаю, что мой код - это проблема, но я думаю, что некоторые строки могут быть не на месте. Я попытался соединить их в конструкторе каждого класса, но это вызывало проблему, поэтому я попытался перенести их в методы, но проблема была та же.
Клиентская сторона:
public class MessagingSupport {
public MessagingSupport(MainController mainController) {
this.mainController = mainController;
// SupportSideMessagingSupport supportSideMessagingSupport = new SupportSideMessagingSupport();
// thought this might be causing the issue but it freezes whether this
// is commented out
connect();
}
private void connect(){
SupportSideMessagingSupport supportSideMessagingSupport = new SupportSideMessagingSupport();
// commenting this out gets a java.net.ConnectException: Connection refused (Connection refused) error
try{
Socket socket = new Socket("localhost", 56515);
System.out.println("listening on port: " + socket.getLocalPort());
DataInputStream dis = new DataInputStream(socket.getInputStream());
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
while(true){
Scanner sc = new Scanner(System.in);
System.out.println("Client: ");
String message = sc.nextLine();
dos.writeUTF(message);
String res = dis.readUTF();
System.out.println("Server said: " + res);
if (res.equals("bye")){
break;
}
}
} catch (IOException ex){
ex.printStackTrace();
}
}
Серверная сторона
public class SupportSideMessagingSupport {
public SupportSideMessagingSupport(){
connectToServer();
}
private void connectToServer(){
try {
ServerSocket serverSocket = new ServerSocket(56515);
Socket socket = serverSocket.accept();
System.out.println("connected");
DataInputStream dis = new DataInputStream(socket.getInputStream());
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
while (true) {
String res = dis.readUTF();
System.out.println("Client said: " + res);
if (res.equals("bye")) {
break;
}
}
Scanner sc = new Scanner(System.in);
System.out.println("Server: ");
String message = sc.nextLine();
dos.writeUTF(message);
} catch(IOException e){
e.printStackTrace();
}
}
Итак, приведенный выше код вызывает зависание приложения. Вместо этого он должен открыть чат в журнале консоли. Спасибо за помощь!