Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #include <memory.h>
- #include <unistd.h>
- #include <string.h>
- #define SRV_HOST "localhost"
- #define SRV_PORT 13002 //порт сервера
- int main(int argc, char** argv)
- {
- int s;
- int in_len;
- char command[16];
- int len_command;
- char result[128];
- char test[128];
- int CLNT_PORT;
- struct hostent *hp;
- struct sockaddr_in clnt_sin, srv_sin;
- if(argc == 2)
- {
- CLNT_PORT = atoi(argv[1]);
- }
- /*int i=0;
- while(*(test+i-1) != '\n')
- {
- scanf("%c",test+i);
- i++;
- }
- len_command = strlen(test);
- */
- //sscanf(argv[1], "%s", command);
- //len_command = strlen(command);
- s = socket(AF_INET, SOCK_STREAM, 0);
- memset ((char *)&clnt_sin, '\0', sizeof(clnt_sin));
- clnt_sin.sin_family = AF_INET;
- clnt_sin.sin_addr.s_addr = INADDR_ANY;
- clnt_sin.sin_port = CLNT_PORT;
- bind(s, (struct sockaddr *)&clnt_sin, sizeof(clnt_sin));
- memset((char *)&srv_sin, '\0', sizeof(srv_sin));
- hp = gethostbyname(SRV_HOST);
- srv_sin.sin_family =AF_INET;
- memcpy ((char *)&srv_sin.sin_addr, hp->h_addr,hp->h_length);
- srv_sin.sin_port = SRV_PORT;
- int k = connect(s, (struct sockaddr *)&srv_sin, sizeof(srv_sin));
- printf("%d\n",k);
- //printf("Результаты выполнения команды: \n");
- int i=0;
- while(*(test+i-1) != '\n')
- {
- scanf("%c",test+i);
- i++;
- }
- len_command = strlen(test);
- send (s, test, len_command, 0);
- recv(s, result, 128,0);
- if (result[0] == '\0')
- printf("Введена неверная команда \n");
- else
- printf("Результаты выполнения команды: \n%s",result);
- close(s);
- exit(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement