Я отладил программу и заметил, что она останавливается, когда она хочет получить поток ввода из сокета:
public Chat(Socket s) throws IOException {
input = new ObjectInputStream(s.getInputStream()); // stopped here
output = new ObjectOutputStream(s.getOutputStream());
initComponents();
}
Я закрыл открытые потоки и сокет перед вызовом вышеуказанного конструктора здесь:
Socket socket = listeningSocket.accept();
disconnect();
Chat c = new Chat(socket);
и вот метод отключения:
private void disconnect() throws IOException {
input.close();
output.close();
client.close();
}
ввод, вывод и клиент инициируются здесь:
client = new Socket(chatServer, chatPort);
input = new ObjectInputStream(client.getInputStream());
output = new ObjectOutputStream(client.getOutputStream());
это трассировка стека, когда программа приостановлена:
Thread [main] (Suspended)
SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
SocketInputStream.read(byte[], int, int) line: 146
ObjectInputStream$PeekInputStream.read(byte[], int, int) line: 2282
ObjectInputStream$PeekInputStream.readFully(byte[], int, int) line: 2295
ObjectInputStream$BlockDataInputStream.readShort() line: 2766
ObjectInputStream.readStreamHeader() line: 797
ObjectInputStream.<init>(InputStream) line: 297
Chat.<init>(Socket) line: 20
Client$5.run() line: 310
Client.clientListen() line: 320
Client.access$7(Client) line: 302
Client$6.run() line: 350
Client.main(String[]) line: 352
пожалуйста, помогите
спасибо:)