Я столкнулся с проблемой при использовании потоков ввода / вывода в Java. Я думал о том, чтобы иметь DataInputStream
для обработки принимаемого текста и PrintStream
для передачи сообщений на сервер от сервера и потоков объектов (вывода / ввода) для обработки проходящих движений фигуры и текущего изображения доски.
Моя проблема в том, что код зависает при попытке создать ObjectInputStream
в приведенном ниже коде. Это потому, что я пытаюсь иметь несколько входных и выходных потоков? Если да, то есть ли какое-нибудь исправление, которое я мог бы использовать?
Socket sock = new Socket("127.0.0.1", 1716);
input = new DataInputStream(sock.getInputStream());
printer = new PrintStream(sock.getOutputStream());
System.out.println("Test 1");
zelda = new ObjectInputStream(sock.getInputStream());
System.out.println("Test 2");
link = new ObjectOutputStream(sock.getOutputStream());
System.out.println("Test 3");
У меня много ссылок на Legend of Zelda в исходном коде моего сервера, и код довольно большой. Предыдущий исходный код предназначен для клиента, и хотя сервер подключается здесь, я вызываю ObjectOutputStream.
ObjectOutputStream ganandorf;
for(int i = 0; i < clients.size(); i++)
{
try
{
ganandorf = new ObjectOutputStream(clients.get(i).getOutputStream());
ganandorf.write(1);
ganandorf.flush();
ganandorf.writeObject(something);
ganandorf.flush();
}