Thank you for that - I thought I was missing one down at the bottom around the line 150 but it is suppose to be:

Code:
// main loop
	for(;;)
	{
		timeout.tv_sec = 15;
		timeout.tv_usec = 0;
		flag = 0;
         }

		read_fds = master; // copy it
		if (select(fdmax+1, &read_fds, NULL, NULL, NULL) == -1)
		{
			perror("select");
			exit(1);
		}
Thanks again and sorry about my careless.