Как поставить клинтов в очередь

Тема в разделе "Delphi - Сети", создана пользователем -, 1 июл 2007.

Статус темы:
Закрыта.
  1. Гость

    Маленько разобрался как оно вообще работает.
    Попробовал только на своём компе, с виртуальной машинрй конектится не хочет, ошибки вылезают.

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

    Как сделать так чтобы сервер не принимал сообщение однрвременр с двух клинтовских машин.
    А только послетого как первая машина закончит передачу данных.

    Помогите пожалуйста!
     
  2. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    По порядку..
    1.
    За это отвечает сам ServerSocket. А ты можешь обращаться к каждому клиенту отдельно через спец.свойство. Блин, не помню уже какое точно.. А из линуха возможности посмотреть нет. Вобщем там что-то в духе - Servsock.connections[номер нужного тебе соединения].что там тебе дальше нужно. RTFM Вобщем.
    Т.е. Тебе при подключении нового клиента(есть событие такое OnClientConnected(или что-то в таком духе:))
    нужно запоминать его номер. А потом просто обращаться как (примерно) написано выше.

    2.
    Исходя из первого ты понимаешь что это нафиг надо? Хотя, такое конечно можно реализовать. Примерно - при подключении нового клиента проверяешь есть ли у тебя другие активные соединения. Там (опять же не помню уже точно) свойство типа clientcount. Проверяешь его значение - если больше одного значит есть шлешь клиенту сообщение wait, иначе шлешь что-то другое(ready напр.). Клиент проверяет это сообщение и если это ready то послылает какие там нужно данные, если это wait то отключается и пробует через некоторое время. Если же нужна именно ОЧЕРЕДЬ т.е. обработка клиентов именно в том порядке в котором они подключаются, то там ещё веселее.. Сходу уже не скажу.

    ЗЫ.
    Сори за такой расплывчатый хелп. Но, думаю, теория ясна. А на практике авсоь сам сообразишь.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей