// когда подключается новый клиент я создаю новый
// процес
if(!fork()){
// и посылаю его в функцию NewClient()
NewClient(client);
}
void NewClient (int client){
while(1){ // бесконечный цыкл
// принимаю сообщение от клиента
char buffer[1024];
bzero(buffer,sizeof(buffer));
recv(client, buffer, sizeof(buffer),0);
if(strlen(buffer) > 0){
cout << buffer ;
}
/* вопрос ! Почему этот цыкл while
выполняется только когда приходит
сообщение от клиента - если нет
сообщений то и цыкл не выполняется
по идеии он должен выполнятся
постоянно ?
*/
}
}
Последний раз редактировалось malik555; 03.07.2009 в 12:43..
У тебя блокируемые сокеты, это означает что когда выполнение цикла доходит до recv(client, buffer, sizeof(buffer),0); далее ожидается прием данных от клиента, как только они пришли выполнение продолжается.
У тебя блокируемые сокеты, это означает что когда выполнение цикла доходит до recv(client, buffer, sizeof(buffer),0); далее ожидается прием данных от клиента, как только они пришли выполнение продолжается.
Это вобще правельно так ? и можно сделать что-б цыкл постоянно крутился ?