| The contents of this page are licensed under the following license Windows Sockets Daytime client | 
| 
#include <winsock2.h>
#include <stdlib.h>
#include <stdio.h>
#define BUF_SIZE 1024
int main(int argc, char* argv[])
{
        WORD WRequiredVersion;
        WSADATA WData;
        SOCKET SSocket;
        int nConnect;
        int nBytes;
        struct sockaddr_in stServerAddr;
        struct hostent* lpstServerEnt;
        char cbBuf[BUF_SIZE];
        if (argc != 3)
        {
                fprintf(stderr, "Usage: %s server_name port_number\n", argv[0]);
                exit(1);
        }
        /* initialize winsock */
        WRequiredVersion = MAKEWORD(2, 0);
        if (WSAStartup(WRequiredVersion, &WData) != 0){
                fprintf(stderr, "WSAStartup failed!");
                exit(1);
        }
        /* look up server's IP address */
        lpstServerEnt = gethostbyname(argv[1]);
        if (! lpstServerEnt)
        {
                fprintf(stderr, "%s: Can't get the server's IP address.\n", argv[0]);
                exit(1);
        }
        /* create a socket */
        SSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
        /* server info */
        memset(&stServerAddr, 0, sizeof(struct sockaddr));
        stServerAddr.sin_family = AF_INET;
        memcpy(&stServerAddr.sin_addr.s_addr, lpstServerEnt->h_addr, lpstServerEnt->h_length);
        stServerAddr.sin_port = htons(atoi(argv[2]));
        /* connect to the server */
        nConnect = connect(SSocket, (struct sockaddr*)&stServerAddr, sizeof(struct sockaddr));
        if (nConnect < 0)
        {
                fprintf(stderr, "%s: Can't connect to the server (%s:%i).\n",
                        argv[0], argv[1], atoi(argv[2]));
                exit(1);
        }
        /* connection is now established; read from socket */
        nBytes = recv(SSocket, cbBuf, sizeof(cbBuf), 0);
        cbBuf[nBytes] = '\x0';
        printf("Data from SERVER [%s]:\t%s", argv[1], cbBuf);
        closesocket(SSocket);
        /* terminate use of the winsock */
        WSACleanup();
        return 0;
}
 | 
August, 23rd 2006  © Michał Kalewski
 © Michał Kalewski