#include <stdio.h>
#include <winsock2.h>
#include <windows.h>
#include <string.h>

int main(int argc, char **argv)
{
    WSADATA wsa;
    SOCKET s;
    struct sockaddr_in server;

    printf("Initialising Winsock2...\n");
    if(WSAStartup(MAKEWORD(2,2),&wsa) != 0)
    {
        printf("Failed. Error Code : %d", WSAGetLastError());
        return 1;
    }
    printf("Initialised.\n");

    if((s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET)
    {
        printf("Could not create socket : %d", WSAGetLastError());
        return 1;
    }
    printf("Socket created.\n");

    server.sin_addr.s_addr = inet_addr("192.168.0.13");
    server.sin_family = AF_INET;
    server.sin_port = htons(1234);

    // Connection to server and sending/receiving data
    if(connect(s, (struct sockaddr *)&server, sizeof(server)) != SOCKET_ERROR)
    {
        printf("Connected\n");
    }else
    {
        printf("Could not connect to server: %d\n", WSAGetLastError());
        return 1;
    }

    while(1)
    {
        char commandIn[999];
        char commandOut[999];

        scanf("%998s", commandOut);

        if(send(s, commandOut, 998, 0) != SOCKET_ERROR)
        {
            printf("Command sent !\n");
        }
        if(recv(s, commandIn, 998, MSG_PEEK) != SOCKET_ERROR)
        {
            printf("Server's reply: %s\n", commandIn);
            return 0;
        }
    }

    closesocket(s);
    WSACleanup();

    return 0;
}