📄 server.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 + -