![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
TwisT_X |
|
|||
![]() It's works! ![]() ![]() Профиль Группа: Участник Сообщений: 293 Регистрация: 15.2.2005 Где: Earth Репутация: нет Всего: 4 |
Добрый вечер...
Писал сервер для игры в шахматы (задание курсовой работы) и столкнулся с непонятной для меня проблемой:
По коду понятно что я хочу, когда подключается клиент к серверу, чтобы сервак написал клиенту, что подконектился.. Но получается при реализации: сервак запускается и ждет клиентов... Заходит первый и сервак ничего не отправляет... Потом заходит второй и сервак отправляет сразу обоим сообщения... Как сделать чтобы отправляло сразу первому не дожидаясь второго? P.S. если убрать блок try то результат не изменится.. -------------------- Если ты упадешь я буду рядом. (с) Асфальт |
|||
|
||||
jk1 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 2 Всего: 75 |
1) Потоки (Streams) надо закрывать методом close(); после использования. Если поток буферизованный, будет полезно также вызвать flush(); для слива содержимого буфера вызовом native API.
2) Взаимодействие сервера с несколькими клиентами, как правило, реализуется созданием отдельного потока для работы с каждым из клиентов, например:
-------------------- Opinions are like assholes — everybody has one |
||||
|
|||||
TwisT_X |
|
|||
![]() It's works! ![]() ![]() Профиль Группа: Участник Сообщений: 293 Регистрация: 15.2.2005 Где: Earth Репутация: нет Всего: 4 |
Получается мне надо использовать потоки Thread. Главным будет сам сервак и два дочерних - клиенты.. Я правильно понял?
-------------------- Если ты упадешь я буду рядом. (с) Асфальт |
|||
|
||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 2 Всего: 75 |
Нет. Это все серверные потоки: один основной + по одному для обслуживания каждого клиента
-------------------- Opinions are like assholes — everybody has one |
|||
|
||||
TwisT_X |
|
|||
![]() It's works! ![]() ![]() Профиль Группа: Участник Сообщений: 293 Регистрация: 15.2.2005 Где: Earth Репутация: нет Всего: 4 |
ой так сразу тяжело все впитать... Получается сервер выделяет два дочерних потока для двух сокетов и работает с ними по отдельности?
Я сейчас буду пробовать... Можно с тобой как-то связаться по ICQ или еще как-то для дальнейшего совета? -------------------- Если ты упадешь я буду рядом. (с) Асфальт |
|||
|
||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 2 Всего: 75 |
На форуме есть PM. Пиши, если будут еще вопросы по теме.
-------------------- Opinions are like assholes — everybody has one |
|||
|
||||
alon4ik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 12.9.2009 Где: Харьков Репутация: нет Всего: нет |
jk1 достаточно хорошо разъяснил. Вам необходимо, чтобы в главном потоке сервера создавался сервер-сокет. Если подконнектился клиент - вы в отдельном потоке обрабатываете его запрос и отсылаете ответ (работаете на уровне инпут- и аутпутстримов). Примеры реализации клиент-серверного взаимодействия посмотрите здесь: сервер, клиент |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Работа с сетью | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |