|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.03.2011, 18:02 | #1 |
Форумчанин
Регистрация: 29.11.2009
Сообщений: 142
|
TCP/IP клиент -сервер
Проблема: мне нужно зациклить так, чтобы сервер работал не с одним клиентом, а со многими. Что я сделал не так?
сервер: Код:
Код:
|
05.03.2011, 18:52 | #2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
Сервер и так работает со многими клиентами, просто не одновременно, т.к. у вас клиентское соединение закрывается сразу же после получения первой порции данных. Создавайте для каждого нового клиента поток, в котором будет крутиться этот код:
Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
Последний раз редактировалось veniside; 05.03.2011 в 18:54. |
05.03.2011, 18:58 | #3 |
Участник клубаДжуниор
Регистрация: 23.08.2008
Сообщений: 1,616
|
del
To delete
pushl $0x18E3DF6B
call ICQ |
05.03.2011, 19:01 | #4 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
Так, как у ТС сейчас написано, цикл будет тупо висеть внутри акцепт(), в ожидании новых клиентов. Можно и без потоков, но тогда перед каждым блокирующим вызовом нужен как минимум select().
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
05.03.2011, 19:15 | #5 | |
Форумчанин
Регистрация: 29.11.2009
Сообщений: 142
|
Цитата:
|
|
05.03.2011, 19:29 | #6 |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
В коде первого поста все не верно. Для работы со многими клиентами одновременно нужно использовать асинхронный режим сокетов. Почитай книгу М.Е.Фленова "C++ глазами хакера". Там это есть.
|
05.03.2011, 19:30 | #7 | |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> разьве так не должно быть?
От задачи зависит. Для веб-сервера, например, это будет не очень удачное решение. > теперь может с другим и так должен мочь работать до бесконечности А сейчас разве не может? Просто вы не объяснили толком, что вам нужно. "чтобы сервер работал не с одним клиентом, а со многими", я так понял, что нужно несколько клиентов одновременно обслуживать. Цитата:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
Последний раз редактировалось veniside; 05.03.2011 в 19:33. |
|
05.03.2011, 20:12 | #8 |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
veniside ну тебе виднее .
|
05.03.2011, 21:18 | #9 |
Форумчанин
Регистрация: 29.11.2009
Сообщений: 142
|
Короче, как я понял, в моем варианте возможно работа со многими клиентами, если не одновременно?
Хм... мне просто сказал преподаватель, что вот так, как в моем примере, нужно зациклить.... таким образом типа правильно... удавлетворяет работе с клиентами, если они не одновременно? |
05.03.2011, 21:43 | #10 |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
Если не одновременно, то да. Все правильно с кодом.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как создать TCP клиент, TCP сервер ? | DreamMaster911 | C/C++ Сетевое программирование | 1 | 26.10.2010 15:05 |
Как отправить видео захват(с веб-Кам.) Клиент->Сервер->Клиент | RODNOC | Мультимедиа в Delphi | 17 | 03.10.2010 22:31 |
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? | Demol | Работа с сетью в Delphi | 1 | 21.04.2009 16:18 |
простой сервер(клиент) TCP | nntpaha | Общие вопросы C/C++ | 4 | 25.12.2007 19:02 |