Вопрос по Winsock in Multithreading
От: GT  
Дата: 08.01.02 13:23
Оценка:
Здравствуйте, господа!.. Пардон, и дамы!!!
Пишу сервер испол'зуя беркли сокеты(MFC испол'зоват' не могу).
Для серверного сокета(т.е который делает accept) открываю новый thread и там его создаю. Проблем как бы нет, сокет создан в среде, ему он и принадлежит. Но вот как быт' с новым сокетом который создает функция accept? Получается, что он создан в том же среде, а мне нужно чтоб он работал в другом (своем) среде. Открыт' новый сред проблем нет, но вот вопрос:
КАК МНЕ ПЕРЕДАТ' КОРРЕКТНО В ЭТОТ СРЕД СОКЕТ, И БУДЕТ ЛИ эТОТ СОКЕТ ПРЕНАДЛЕЖАТ' НОВОМУ СРЕДУ?!

Зарание благодарен всем откликнувшимся!!!
Геннадий.
Если мы хотим до шлема добраться...
Re: Вопрос по Winsock in Multithreading
От: Alexander Shargin Россия RSDN.ru
Дата: 08.01.02 13:29
Оценка:
Здравствуйте GT, Вы писали:

GT>Здравствуйте, господа!.. Пардон, и дамы!!!

GT>Пишу сервер испол'зуя беркли сокеты(MFC испол'зоват' не могу).
GT>Для серверного сокета(т.е который делает accept) открываю новый thread и там его создаю. Проблем как бы нет, сокет создан в среде, ему он и принадлежит. Но вот как быт' с новым сокетом который создает функция accept? Получается, что он создан в том же среде, а мне нужно чтоб он работал в другом (своем) среде. Открыт' новый сред проблем нет, но вот вопрос:
GT>КАК МНЕ ПЕРЕДАТ' КОРРЕКТНО В ЭТОТ СРЕД СОКЕТ, И БУДЕТ ЛИ эТОТ СОКЕТ ПРЕНАДЛЕЖАТ' НОВОМУ СРЕДУ?!

Хэндлы сокетов можно спокойно использовать из разных тредов. Можно, например, читать из сокета в одном треде, а писать в него — в другом. Так что просто передавай хэндл сокета новому треду как параметр треда, а в функции треда приводи к типу SOCKET и работай, как обычно.

ЗЫ. Оригинальная интерпретация слова thread у вас, товарищ.
--
Я думал, ты огромный страшный Бажище,
А ты недоучка, крохотный Бажик...
Re[2]: Вопрос по Winsock in Multithreading
От: GT  
Дата: 08.01.02 16:07
Оценка:
Здравствуйте Alexander Shargin, Вы писали:

AS>Здравствуйте GT, Вы писали:


GT>>Здравствуйте, господа!.. Пардон, и дамы!!!

GT>>Пишу сервер испол'зуя беркли сокеты(MFC испол'зоват' не могу).
GT>>Для серверного сокета(т.е который делает accept) открываю новый thread и там его создаю. Проблем как бы нет, сокет создан в среде, ему он и принадлежит. Но вот как быт' с новым сокетом который создает функция accept? Получается, что он создан в том же среде, а мне нужно чтоб он работал в другом (своем) среде. Открыт' новый сред проблем нет, но вот вопрос:
GT>>КАК МНЕ ПЕРЕДАТ' КОРРЕКТНО В ЭТОТ СРЕД СОКЕТ, И БУДЕТ ЛИ эТОТ СОКЕТ ПРЕНАДЛЕЖАТ' НОВОМУ СРЕДУ?!

AS>Хэндлы сокетов можно спокойно использовать из разных тредов. Можно, например, читать из сокета в одном треде, а писать в него — в другом. Так что просто передавай хэндл сокета новому треду как параметр треда, а в функции треда приводи к типу SOCKET и работай, как обычно.


AS>ЗЫ. Оригинальная интерпретация слова thread у вас, товарищ. ;)


Большое спасибо!!!
Если мы хотим до шлема добраться...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.