2011-12-25 6 views
-1

1.Connected 2 клиентов с помощью сокетовбуферизацией входного потока, показывающий предыдущие данные

2.Client1 что-то к гнезду

3.Client 2 считывает данные

4.Client 2 затем записывает данные в записи то же самое гнездо

5.Client 1 теперь считывает данные

проблема встречающийся на шаге 5. данные, доступные в буферизованном потоке ввода на шаге 5 к клиенту1, также содержат некоторый объем данных, записанных на этапе 2.i.e. входной поток не очищается, когда на шаге 3 клиент 2 считывает данные. Пожалуйста, помогите

+0

Очень маловероятно, что в буферизованном потоке ввода в Java есть ошибка, поэтому убедитесь, что вы читаете все данные, которые должны быть прочитаны. –

+2

Ваш вопрос запутан, самая большая проблема заключается в том, что это два совершенно разных BufferedInputStreams. Как в сторону, вы очищаете потоки после чтения данных? Можете ли вы показать какой-то код и прояснить свою проблему? –

ответ

0

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

Я предлагаю вам иметь поток чтения и записи на клиенте и поток на сервере.

0

вы не должны смывать поток. Попробуйте добавить «\ n» в конце ваших строк.

PS: IMHO с использованием scanner вместо буферизованного потока будет проще.

Счастливое кодирование.