Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 | 3 | 4 | 5 | 6 |

 

  Вопрос: русские буквы Добавлено: 21.09.10 15:53  

Автор вопроса:  Ishayahu | Web-сайт: ishayahu.blogspot.com | ICQ: 329944992 

Ответить

  Ответы Всего ответов: 90  

Номер ответа: 61
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #61 Добавлено: 24.09.10 18:32
Зачем в дотнете вообще винсок делать?
Ты заточил класс под модель событий Windows Forms, но забыл об одном моменте - TCP сервер - это обычно не Windows Forms, а Windows Service. И работа там идет не с синхронизацией на класс UI, а в полностью свободной потоковой модели.

VBD, ты головой думаешь? Может я вообще еще не смотрел 1 серию... Ты может и краткое содержани перескажешь тем кто не успел посмотреть?

Ответить

Номер ответа: 62
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #62 Добавлено: 24.09.10 19:31
хммм а ведь верно! )

Ответить

Номер ответа: 63
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #63 Добавлено: 24.09.10 20:13
хммм а ведь верно! )

ну так это.. джедаи плохого не посоветуют..

Ответить

Номер ответа: 64
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #64 Добавлено: 24.09.10 22:39
Зачем в дотнете вообще винсок делать?
Ты заточил класс под модель событий Windows Forms, но забыл об одном моменте - TCP сервер - это обычно не Windows Forms, а Windows Service. И работа там идет не с синхронизацией на класс UI, а в полностью свободной потоковой модели.

VBD, ты головой думаешь? Может я вообще еще не смотрел 1 серию... Ты может и краткое содержани перескажешь тем кто не успел посмотреть?

Ответить

Номер ответа: 65
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #65 Добавлено: 24.09.10 23:01
те кто не успел посомтреть - посмотрят. ну, она называется now what? и принципе это и есть описание того чего там

Ответить

Номер ответа: 66
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #66 Добавлено: 24.09.10 23:17
Разумеется посмотрят. Но как будет смазано впечатление от серии, только из-за того что они благодаря VBD будут заранее знать что ... ???

VBD, ты, наверное, и на премьере матрицы стоял под кинотеатрам и всем кто входил говорил что в третьей части Нео умрет?

Ответить

Номер ответа: 67
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #67 Добавлено: 24.09.10 23:21
AgentFire пишет:
Предлагаете еще и винсок делать общим для более мелких ?

Я предлагаю вообще не делать винсок, потому что в .NET есть классы, предоставляющие аналогичную функциональность.

Ответить

Номер ответа: 68
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #68
Добавлено: 24.09.10 23:48
Воот, успокоился. Теперь подыши и скажи "VB6 - это хорошо. Гораздо удобней и лучше каких-то там всяких C# с их полугигабайтным фраемворком и принудительной конвертацией типов.".

А вообще это только кусочек. Так что я наоборот, подогрел интерес.

Ответить

Номер ответа: 69
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #69 Добавлено: 25.09.10 00:31
[quote="Artyom"]Еще один ресурс, который не учтен - это потоки. 1300 потоков. Причем каждый поток получает 1 мб стека. А это уже 1.3 ГБ.
В результате при очередной попытке запустить новый поток память кончается и приложение падает.

И любая реализация TCP-сервера, основаная на потоках (причем не важно как именно, напрямую на Thread, на ThreadPool, на BackgroundWorker или на чем еще) не сможет обслуживать большое количество клиентов. Отличие в том что в случае использование ThreadPool приложение не упадет, а просто перестанет принимать подключения клиентов, так как ThreadPool заполнится (порядка 1000 потоков) и новые потоки просто не будут создаваться.
Даже если не планируется что сервером будут пользоваться большое кол-во клиентов, нужно понимать что при желании любой недоброжелатель может подключить к серверу фиктивных клиентов и он упадет.Раз пошла такая пьянка, то вопрос к тебе такой.
Сейчас пишу (в большей степени для самообразования, но не буду зарекаться, может что и выйдет) на WCF чат. Чат уже рабочий, приделал передачу файлов, сейчас хочу попробовать сделать Voice и Video. Но вопрос не в этом.
Какие там подводные камни можно ожидать? Уж больно хорошо ты расписал выше указанное.

Ответить

Номер ответа: 70
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #70 Добавлено: 25.09.10 00:33
Еще один ресурс, который не учтен - это потоки. 1300 потоков. Причем каждый поток получает 1 мб стека. А это уже 1.3 ГБ.
В результате при очередной попытке запустить новый поток память кончается и приложение падает.
И любая реализация TCP-сервера, основаная на потоках (причем не важно как именно, напрямую на Thread, на ThreadPool, на BackgroundWorker или на чем еще) не сможет обслуживать большое количество клиентов. Отличие в том что в случае использование ThreadPool приложение не упадет, а просто перестанет принимать подключения клиентов, так как ThreadPool заполнится (порядка 1000 потоков) и новые потоки просто не будут создаваться.
Даже если не планируется что сервером будут пользоваться большое кол-во клиентов, нужно понимать что при желании любой недоброжелатель может подключить к серверу фиктивных клиентов и он упадет.


Раз пошла такая пьянка, то вопрос к тебе такой.
Сейчас пишу (в большей степени для самообразования, но не буду зарекаться, может что и выйдет) на WCF чат. Чат уже рабочий, приделал передачу файлов, сейчас хочу попробовать сделать Voice и Video. Но вопрос не в этом.
Какие там подводные камни можно ожидать? Уж больно хорошо ты расписал выше указанное.

Ответить

Номер ответа: 71
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #71 Добавлено: 25.09.10 02:16
У стандартных биндингов WCF таких проблем не должно быть. Разумеется, это в самих биндингах. Вопрос еще в том как реализован сервис.

Ты кстати какой биндинг используешь?

Ответить

Номер ответа: 72
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #72 Добавлено: 25.09.10 10:35
а вот каждому из 1300 потоков, господа, разве нельзя указать, скажем размеры буферов или чего-либо другого, в результате чего потоки станут кушать меньше памяти?

Ответить

Номер ответа: 73
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #73 Добавлено: 25.09.10 11:25
Я ж показал что буферы здесь не играют погоды.
Даже если подключиться максимально возможное кол-во клиентов (кажется около 65000), то с буферов по 8 кб на клиента наберется 0.5ГБ всего.

А как ты предлагаешь уменьшить размер памяти, который выделяется потоку под стек?

Ответить

Номер ответа: 74
Автор ответа:
 Ishayahu



ICQ: 329944992 

Вопросов: 4
Ответов: 21
 Web-сайт: ishayahu.blogspot.com
 Профиль | | #74
Добавлено: 25.09.10 21:22
я извиняюсь, что влезаю в такой интересный спор (завтра засяду его разбирать), но на мой вопрос по поводу вопросов при посылке сообщений на сервер так и остался без ответа.
не бросайте, пожалуйста!
очень уж хочется разобраться, где же там собака зарыта!

Ответить

Номер ответа: 75
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #75 Добавлено: 25.09.10 22:50
в новой теме твоя собака зарыта. кнопочка "Новая тема"

Artyom пишет:
А как ты предлагаешь уменьшить размер памяти, который выделяется потоку под стек?

честно говоря надеялся, что ТЫ предложишь

Ответить

Страница: 1 | 2 | 3 | 4 | 5 | 6 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам