#include #include #include #pragma comment(lib, "ws2_32.lib") int main() { WSADATA wsa; SOCKET s; struct sockaddr_in server; char* message, server_reply[2000]; int recv_size; printf("\nInitialising Winsock..."); if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0) { printf("WSAStartup failed. Error Code : %d", WSAGetLastError()); return 1; } printf("Initialised.\n"); //Create a socket if ((s = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) { printf("Could not create socket : %d", WSAGetLastError()); } printf("Socket created.\n"); server.sin_addr.s_addr = inet_pton(AF_INET, "127.0.0.1", &server.sin_addr); // set the IP address of the server you want to connect to server.sin_family = AF_INET; server.sin_port = htons(80); // set the port number you want to connect to //Connect to remote server if (connect(s, (struct sockaddr*)&server, sizeof(server)) < 0) { printf("connect error\n"); return 1; } printf("Connected\n"); //Send some data message = (char*)"GET / HTTP/1.1\r\n\r\n"; if (send(s, message, strlen(message), 0) < 0) { printf("Send failed"); return 1; } printf("Data Sent\n"); //Receive a reply from the server if ((recv_size = recv(s, server_reply, 2000, 0)) == SOCKET_ERROR) { printf("recv failed\n"); } printf("Reply received\n"); //Add a NULL terminating character to make it a proper string before printing server_reply[recv_size] = '\0'; printf("%s", server_reply); //Close the socket closesocket(s); WSACleanup(); return 0; }