На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> 2 небольших вопроса: сокеты и потоки , Хотелось бы узнать...
    Есть 2 небольших вопроса:
    1) Пишу небольшой сервер. Один сокет слушает, ловит входящие, вешает их в массив. При вызове BeginReceive нужно каждому выдат байтовый массив для приема, буффер. Это что же, на каждый сокет по буферу?

    2) Я просто вызываю из одной функции другую в новом потоке, чтобы первая продолжала дальше работать. Засыпаний потоков нету, переменная потока никуда не помещается, после окончания переменная потока вышходит из зоны действия. Как я понял в такой ситуации можно и не контролировать закрытие потока?
    Сообщение отредактировано: Romey -
      Да вот еще один вопрос - в надежде что сюда кто-нибудь зайдет, кто сможет и захочет ответить - неплохо будет разрешить сразу все мои вопросы.
      Те же асинхронные методы сокетов. Если в промежуток между вызовами EndReceive (конец прошлой сессии приема) и BeginReceive (нчало новой) будет отправлена от и принята информация, я смогу ее получить, или она потеряется?
        3 вопрос сам разрешил, экспкериметом. Данные не пропадают. :D
        1 вопрос - кажется только так. Но если я не прав - поправьте.
        На 2 вопрос все еще очень жду ответа!

        :wall:
        Сообщение отредактировано: Romey -
          Цитата
          Как я понял в такой ситуации можно и не контролировать закрытие потока?

          А зачем его в такой ситуации контролировать?
            GazOn, я имею в виду - он сам закроется? Не будет висеть мертвым грузом, ресурсы освобятся?
              1 вопрос: ну да, на каждый сокет по буфферу
              а как иначе? несколько сокетов в один буфер и что ты поймёшь потом в куче даныых?
              к тому же, как я понял у тебя используется не так уж много сокетов
                art-MiXeR, смесь информации - не страшно: у меня в самой информации написано от кого она и зачем. Но по идее если им дать один буфер они могут поверх друг друга писать - будет теряться инфа. А если дать большой буфер, указывая каждому место где писать (начальный индекс и длину) получится тоже самое что и много буферов.
                Кстати идея тут пришла: может использовать один нулевой буфер на всех. При срабатывание процедуры читать данные синхронным методом. такое получится? Я конечно и сам попробую такой вариант когда время будет, но хотелось бы узнать ваше мнение.
                Сообщение отредактировано: Romey -
                  Зачем усложнять себе жизнь если всё можно сделать проще?
                  Существует заданное количество сокетов(насколько я понимаю это так) объявляешь такое же количество массивов из каждого сокета считываешь данные в отдельный массив и обрабатываешь данные из каждого массива отдельно
                  P.S. Может я конечно чего-то не понял, но имхо так проще
                    Проще от оно конечно проще. Но память расходуется - если буфер для чтения равен 1024 байта - это при 10 массивах аж 10 кило в оперативке лижт! :o ;) :whistle: Ну это вообщем то не важно. Я вообщем-то за 2 вопросом приперся на форум, а 1 задал чтобы проверить - не ступил ли.
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0725 ]   [ 16 queries used ]   [ Generated: 2.05.24, 01:53 GMT ]