Название: многопроцессный сервер Отправлено: MEFISTO от Декабрь 09, 2013, 13:00 надо написать сервер, который бы на каждого клиента выделял отдельный процесс. система Win XP.
с процессами еще не работал поэтому сразу есть ряд, возможно, глупых вопросов: 1) можно ли сделать сервер с одним .exe файлом или надо как минимум два для самого сервера и процесса? 2) как передать в процесс сокет (в потоке достаточно было передать socketDescriptor) 3) как вызывать (завершать) процесс чтобы высвобождалась память после его завершения? Название: Re: многопроцессный сервер Отправлено: Fregloin от Декабрь 09, 2013, 19:50 задача немного странная.
По поводу сокета, насколько я знаю, сокеты живут в пространстве процесса, поэтому созданный и открытый сокет передать в другой процесс скорее всего маловероятно. Название: Re: многопроцессный сервер Отправлено: Johnik от Декабрь 10, 2013, 07:17 1. можно
2. пример можно посмотреть в QtSolutions/qtsingleapplication 3. завершился процесс, ос освободила память Название: Re: многопроцессный сервер Отправлено: fedya_1981 от Декабрь 10, 2013, 11:32 задача немного странная. По поводу сокета, насколько я знаю, сокеты живут в пространстве процесса, поэтому созданный и открытый сокет передать в другой процесс скорее всего маловероятно. можно, например под Windows можно воспользоваться WSADuplicateSocket Название: Re: многопроцессный сервер Отправлено: Fregloin от Декабрь 10, 2013, 11:39 Хорошо, а под линами как это сделать? Допустим есть сервер висит на listen/accept, как передать созданный клиентский сокет в другой процесс?
Название: Re: многопроцессный сервер Отправлено: fedya_1981 от Декабрь 10, 2013, 11:51 Хорошо, а под линами как это сделать? Допустим есть сервер висит на listen/accept, как передать созданный клиентский сокет в другой процесс? http://search.cpan.org/src/SAMPO/Socket-PassAccessRights-0.03/passfd.c Название: Re: многопроцессный сервер Отправлено: fedya_1981 от Декабрь 10, 2013, 11:56 Хорошо, а под линами как это сделать? Допустим есть сервер висит на listen/accept, как передать созданный клиентский сокет в другой процесс? Попробуй в гугле поищи по "passes a socket between process" Название: Re: многопроцессный сервер Отправлено: MEFISTO от Декабрь 10, 2013, 13:56 а можно ли слушать один и тот же порт разными процессами? т.е в каждом процессе запускается сервер и работает только с тем клиентом для которого был создан.
Или для каждого сервера придется выделить свой порт? |