Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.138.200.66] |
|
Сообщ.
#1
,
|
|
|
Есть 2 небольших вопроса:
1) Пишу небольшой сервер. Один сокет слушает, ловит входящие, вешает их в массив. При вызове BeginReceive нужно каждому выдат байтовый массив для приема, буффер. Это что же, на каждый сокет по буферу? 2) Я просто вызываю из одной функции другую в новом потоке, чтобы первая продолжала дальше работать. Засыпаний потоков нету, переменная потока никуда не помещается, после окончания переменная потока вышходит из зоны действия. Как я понял в такой ситуации можно и не контролировать закрытие потока? |
Сообщ.
#2
,
|
|
|
Да вот еще один вопрос - в надежде что сюда кто-нибудь зайдет, кто сможет и захочет ответить - неплохо будет разрешить сразу все мои вопросы.
Те же асинхронные методы сокетов. Если в промежуток между вызовами EndReceive (конец прошлой сессии приема) и BeginReceive (нчало новой) будет отправлена от и принята информация, я смогу ее получить, или она потеряется? |
Сообщ.
#3
,
|
|
|
3 вопрос сам разрешил, экспкериметом. Данные не пропадают.
1 вопрос - кажется только так. Но если я не прав - поправьте. На 2 вопрос все еще очень жду ответа! |
Сообщ.
#4
,
|
|
|
Цитата Как я понял в такой ситуации можно и не контролировать закрытие потока? А зачем его в такой ситуации контролировать? |
Сообщ.
#5
,
|
|
|
GazOn, я имею в виду - он сам закроется? Не будет висеть мертвым грузом, ресурсы освобятся?
|
Сообщ.
#6
,
|
|
|
1 вопрос: ну да, на каждый сокет по буфферу
а как иначе? несколько сокетов в один буфер и что ты поймёшь потом в куче даныых? к тому же, как я понял у тебя используется не так уж много сокетов |
Сообщ.
#7
,
|
|
|
art-MiXeR, смесь информации - не страшно: у меня в самой информации написано от кого она и зачем. Но по идее если им дать один буфер они могут поверх друг друга писать - будет теряться инфа. А если дать большой буфер, указывая каждому место где писать (начальный индекс и длину) получится тоже самое что и много буферов.
Кстати идея тут пришла: может использовать один нулевой буфер на всех. При срабатывание процедуры читать данные синхронным методом. такое получится? Я конечно и сам попробую такой вариант когда время будет, но хотелось бы узнать ваше мнение. |
Сообщ.
#8
,
|
|
|
Зачем усложнять себе жизнь если всё можно сделать проще?
Существует заданное количество сокетов(насколько я понимаю это так) объявляешь такое же количество массивов из каждого сокета считываешь данные в отдельный массив и обрабатываешь данные из каждого массива отдельно P.S. Может я конечно чего-то не понял, но имхо так проще |
Сообщ.
#9
,
|
|
|
Проще от оно конечно проще. Но память расходуется - если буфер для чтения равен 1024 байта - это при 10 массивах аж 10 кило в оперативке лижт! Ну это вообщем то не важно. Я вообщем-то за 2 вопросом приперся на форум, а 1 задал чтобы проверить - не ступил ли.
|