Пример #1
0
int main(int argc, char * argv[])
{
	signal(13, SIG_IGN);
	signal(17, sig_handle);

	if(argc != 3)
	{
		printf("USAGE: EXE IP PORT");
		exit(-1);
	}
	
	int fd_server, fd_client ;
	struct sockaddr_in client_addr ;
	int addrlen = sizeof(client_addr);
	fd_server = listenfd_init(argv[1], argv[2]);

	
	while((fd_client = accept(fd_server, 
					(struct sockaddr*)&client_addr, &addrlen)) > 0)
	{
		if(fd_client == -1)
		{
			if(errno == EINTR)
			{
				continue ;

			}
		}
		printf("a client connet :%s :%d\n",
				inet_ntoa(client_addr.sin_addr),
				ntohs(client_addr.sin_port));

		
		if(fork() == 0)
		{
			close(fd_server);
		//	send_dir(fd_client);
			printf("begin handle...download...\n");
			handle_request(fd_client);
			exit(0);
		}
	}
}
Пример #2
0
int main(int argc , char* argv[])//exe ip port
{
	signal(13,SIG_IGN);
	if(argc != 3)
	{
		printf("usge : exe ip port");
		exit(-1);
	}
	int fd_server,fd_client;
	struct sockaddr_in client_addr ;
	int addrlen = sizeof(client_addr);
	fd_server = listenfd_init(argv[1], argv[2]);

	while(fd_client = accept(fd_server,(struct sockaddr*)&client_addr,&addrlen))
	{
		printf("a client connect :%s:%d\n",inet_ntoa(client_addr.sin_addr),ntohs(client_addr.sin_port));
		handle_request(fd_client);
	
	}

}
Пример #3
0
int main(int argc , char* argv[])//exe ip port
{
	signal(13,SIG_IGN);
	signal(17,sig_handle);
	if(argc != 3)
	{
		printf("usge : exe ip port");
		exit(-1);
	}
	int fd_server ,fd_client;
	struct sockaddr_in client_addr ;
	int addrlen = sizeof(client_addr);
	fd_server = listenfd_init(argv[1],argv[2]);
	while( (fd_client = accept(fd_server,(struct sockaddr*)&client_addr,&addrlen) ) > 0 )
	{
		if(fd_client == -1)
		{
			if(errno == EINTR)
			{
				continue ;
			}
		}
		printf("a client connect :%s:%d\n",inet_ntoa(client_addr.sin_addr),ntohs(client_addr.sin_port));
		if(fork() == 0)
		{
			close(fd_server);
			char comd[1024];
			//circle recv msg
			while(1)
			{
				fflush(stdout);
				char sign[32];
				bzero(comd, 1024);
				recv_command(fd_client,comd);
				
				printf("comd:%s\n", comd);
				if(strncmp(comd, "ls", 2) == 0)
				{
					send_dir(fd_client);
				}
				else if(strncmp(comd, "download", 8) == 0)
				{
					ul_file(fd_client);
				}
				else if(strncmp(comd, "cd", 2) == 0)	
				{
					send_path(fd_client, comd);		
				}
				else if(strncmp(comd, "rm", 2) == 0)
				{
					system(comd);
				}
				else if(strncmp(comd, "upload", 6) == 0)
				{
					dl_file(fd_client);
				}
				else if(strncmp(comd, "cl", 2) == 0)
				{
					system("clear");
				}

			}
			exit(0);
		}
	}

}