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

📄 server.c

📁 用于发送发送指令到服务器
💻 C
字号:
/* * ===================================================================================== * *       Filename:  server.c * *    Description:  This program is used to send command * *        Version:  1.0 *        Created:  04/04/2009 01:01:02 AM *       Revision:  none *       Compiler:  gcc * *         Author:  Shan Yafeng *        Company:   * * ===================================================================================== */#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <errno.h>#include <arpa/inet.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#include <fcntl.h>#include <sys/select.h>#include <sys/time.h>#define PORT	20001#define MAXSIZE 8int main(int argc,char **argv){	if (argc<3){		fprintf(stderr,"Usage:%s [IP] [Command] [arg]",argv[0]);		exit(1);	}	int socket_fd;	int indicator;	struct sockaddr_in  addr;	char buf[MAXSIZE],cmd[MAXSIZE];	int i;	fd_set fds;	struct timeval timeout={1,0};	if ((socket_fd=socket(AF_INET,SOCK_STREAM,0))<0){		perror("Socket");		exit(1);	}	addr.sin_family=AF_INET;	addr.sin_port=htons(PORT);	addr.sin_addr.s_addr=inet_addr(argv[1]);	if(connect(socket_fd,(struct sockaddr *)&addr,sizeof(struct sockaddr))<0){		perror("connect");		exit(1);	}	printf("Connect Down!\n");	/*	if(fcntl(socket_fd, F_SETFL, O_NONBLOCK) == -1) {		perror("fcntl");		exit(errno);	}*/	memset(cmd,0,MAXSIZE);	for (i=2;i<=argc-1;i++)		if (sprintf(cmd,"%s %s",cmd,argv[i])<0){			perror("Sprintf");			exit(1);		}	printf("%s  \n",cmd);		while (send(socket_fd,cmd,strlen(cmd),0)<0){}	printf("Send Command Down\n");	memset(buf,0,MAXSIZE);//	recv(socket_fd,buf,MAXSIZE-1,0);//			printf("%s",buf);//	recv(socket_fd,buf,MAXSIZE-1,0);//			printf("%s",buf);	while(1){		FD_ZERO(&fds);		FD_SET(socket_fd,&fds);		switch((i=select(socket_fd+1,&fds,NULL,NULL,&timeout))){						case -1:exit(-1);break;			case 0:	break;			default:				indicator=recv(socket_fd,buf,MAXSIZE-1,0);				if ((strlen(buf)==1)||(indicator<0))				{//	printf("%d\t\t\t%d\n",strlen(buf),indicator);					break;				}				else{					//			printf("%d\t\t\t%d\n",strlen(buf),indicator);					printf("%s",buf);					memset(buf,0,MAXSIZE);				}		}		if (i==0)			break;	}	if(strlen(buf)>1){		printf("%s",buf);	}		printf("\nThe program is down\n");	close(socket_fd);	return 0;}

⌨️ 快捷键说明

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