![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
закрытие сокета другого потока [Win2k, WinXP]
Ketmar © (2006-07-26 19:16:00)суть такая: есть n потоков, которые активно читают/пишут в совкеты. прокси-сервер, короче. %-) сокеты -- блокирующие.
в один печальный момент надо пришибить все эти потоки. как можно быстрее. сейчас я просто закрываю все сокеты, с которыми работают эти потоки (из отдельного потока-наблюдателя %-). вроде работает (за исключением сокета, который ожидает в connect() -- эти долго-долго думают %-(( ).
понимаю, что варварство, но ничего более умного сочинить не могу.
собственно, вопрос в том, наступал ли кто-то на грабли при таком жёстком изврате? или никто подобный невежливый код не пишет?
зыж нет, я в курсе, что есть неблокирующие сокеты. огромная просьба меня не тыкать в них -- интересно именно для блокирующих.
(не совсем уверен, что это не в WinAPI надо было...)
Сергей М. (2006-07-27 15:02:00) [21]Удалено модератором
Медведъ (2006-07-27 14:35:00) [22]Удалено модератором
Примечание: Все что ниже удалено - Оффтоп...
Ketmar (2006-07-27 10:13:00) [23]Удалено модератором
Примечание: Оффтоп...
Медведъ (2006-07-27 09:35:00) [24]Удалено модератором
Примечание: Оффтоп...
Ketmar (2006-07-27 00:26:00) [25]Удалено модератором
Примечание: Оффтоп...
tesseract (2006-07-26 22:02:00) [26]Удалено модератором
Примечание: Оффтоп...
Ketmar (2006-07-26 20:56:00) [27]>Медведъ (26.07.06 19:55) [2]
а я как, по-твоему, сокеты юзаю, если не через winsock-API? %-)
а с одним неудобно. во-первых, я не люблю неблокирующие сокеты, во-вторых -- зачем писать транспортный диспетчер, если с этим отлично справляется сама винда при использовании потоков? больше 20-24 потоков у меня быть не может по-определению, не вижу смысла усложнять программу. %-) реально обычно активно 5-6 потоков. редко когда 8. проксь-то исключительно для личного использования.
более того: неблокирующий режим считаю извращением, рождённым в больных мозгах программеров некрософта. %-)
Медведъ (2006-07-26 19:55:00) [28]Windows имеет замечательный API, используй его
какой смысл мучать блокируюший режим, для прокси сервера вполне достаточно одного транспортного потока
Ketmar (2006-07-26 19:20:00) [29]тьфу. пока отправлял -- понял, что натупил. данные ходят небольшими порциями, и никто не мешает между порциями проверять любые флажки и условия.
однако для сокета, который "слушает", вижу только одно решение -- прекратить "слушать" в блокирующем режиме. (то есть, не "слушать", конечно, а "принимать"). придётся делать select() и вызывать accept() только если кто-то пришёл. не хочется. но, видимо, других вариантов нет -- кроме кривых хаков. %-(