чат с использованием сокет программирования - PullRequest
1 голос
/ 18 октября 2010

Я пишу программу для чата на стороне клиента, которую я записал

clientSocket = new Socket('127.0.0.1',5432);
socketInputBuffer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
socketOutputBuffer = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
systemBuffer = new BufferedReader(new InputStreamReader(System.in));

, а на стороне сервера

sock = new ServerSocket(5432);

и socketinputbuffer иsocketoutputbuffer как написано в клиенте

теперь в вышеприведенном коде соединение должным образом устанавливается после того, как со стороны сервера я записываю в поток сокетов, который я буду читать на клиенте.

но клиент ждетсервер для завершения его написания.но когда я использую shutdownoutput на сервере, он пишет, и клиент может читать правильно, но та же проблема возникает, когда клиент пишет.поэтому я использовал выход выключения на клиенте также.из-за этого я не могу отправить данные в следующий раз, пожалуйста, предложите мне какой-нибудь метод, чтобы клиент и сервер работали должным образом

я пишу с использованием [CODE] socketOutputBuffer.write («Введите ваше имя»);socketOutputBuffer.flush ();[/ CODE] все еще не работает.

Ответы [ 3 ]

0 голосов
/ 18 октября 2010

Чтобы отправить данные клиенту без закрытия соединения, используйте метод flush на BufferedWriter.Кроме того, вам нужно показать, как вы делаете чтение / запись.Вероятно, вы используете методы блокировки, и в этом случае клиент будет ждать, пока он не получит данные с сервера, для продвижения в потоке.Вы можете разделить код на два потока: поток, который пишет на сервер, и поток, который читает с сервера, или вы можете использовать Java NIO.Вы можете использовать этот проект в качестве базовой линии.

0 голосов
/ 18 октября 2010

Попробуйте использовать метод flush() для отправки данных без закрытия соединения.

0 голосов
/ 18 октября 2010

Вот пример быстрого кода:

http://www.kieser.net/linux/java_server.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...