⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s.c

📁 daytime服务
💻 C
字号:
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<sys/select.h>
#include<sys/time.h>
#include<netdb.h>
#include<string.h>
#include<stdlib.h>
#include<unistd.h>
#include<stdio.h>
#include <errno.h>  
#include <fcntl.h> 
#include <signal.h>

int main(int argc, char *argv[])
{
	int i;

	pid_t childpid[4]={0,0,0,0};
	short state_s[4]={0,0,0,0};
	char recv1[100], recv2[100];
	char *sfile[4] = {"./dayts\0", "./tis\0", "./ecs\0", "./chars\0"};

	for( i = 0; i < 4; i++ )
	{
		childpid[i]=vfork();
		if( childpid[i]==0 )
		{
			execlp( sfile[i], sfile[i], (char*)0 );
			_exit(0);
		}			
		else if( childpid[i]<0 )
			;
	} 
	while(1)
	{
		printf("INPUT:");
		scanf("%s%s",recv1,recv2);

		if( strcmp(recv1,"s") == 0 )
		{
			if( (strcmp(recv2,"daytime") == 0)&&(!state_s[0]) )
			{
				kill(childpid[0],33);
				state_s[0] = 1;
			}
			else if ( (strcmp(recv2,"time") == 0)&&(!state_s[1]) )
			{
				kill(childpid[1],33);
				state_s[1] = 1;
			}
			else if ( (strcmp(recv2,"echo") == 0)&&(!state_s[2]) )
			{
				kill(childpid[2],33);
				state_s[2] = 1;
			}
			else if ( (strcmp(recv2,"chargen") == 0)&&(!state_s[3]) )
			{
				kill(childpid[3],33);
				state_s[3] = 1;
			}
			else 
			{
				printf("error command\n");
				continue;
			}
			printf("%s start\n",recv2);
		}
		else
			printf("error command.\n");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -