Sample - Simple Client/Server Connection 
Using Sockets (Client): Notes   Code
#include "winsock2.h" //#include "winsock2.h" (ws2_32.lib)
#include "iostream.h" //cout

#define IP_ADDRESS "127.0.0.1"
#define PORT_NUMBER 10000

void main()
{
    WSADATA wsaData;
    WSAStartup( MAKEWORD( 2, 0), &wsaData );
	 
    SOCKET  st = socket( PF_INET, SOCK_STREAM, 0 );

    if ( st == INVALID_SOCKET )
    {
        cout << "Invalid Socket"  <<  endl;
        cout << WSAGetLastError() <<  endl;
    }

    u_long  lBinaryIP =inet_addr( IP_ADDRESS );   
    u_short iNetworkPort = htons( PORT_NUMBER );  

    SOCKADDR_IN sinServer;                          

    sinServer.sin_family      = AF_INET; //PF_NET for WinSock 1.1 only!
    sinServer.sin_addr.s_addr = /*INADDR_ANY*/ lBinaryIP; 
    sinServer.sin_port        = iNetworkPort;

    /***************************************************************************
    *  Code above is identical for client and server. Now client calls connect * 
    *            ( server called bind and listen at this point)                *
    ****************************************************************************/

    int iStatus = connect( st, (LPSOCKADDR)&sinRemote, sizeof(SOCKADDR_IN) );
    if( iStatus == SOCKET_ERROR )
    {
        cout << "Connect Error"  <<  endl;
        cout << WSAGetLastError() <<  endl;
    }
    else
    {
        cout << "Connect Passed ..."  <<  endl;
    }
    
    /***************************************************************************
    *   Client reads a message from server by calling recv (short of receive)  * 
    ****************************************************************************/

    char szReceiveString[100];

    iStatus = recv( st, 
                    szReceiveString, 
                    sizeof(szReceiveString), 
                    0 /*recommended*/);
                    
    if( iStatus == SOCKET_ERROR )
    {
        cout << "Receive Error"  <<  endl;
        cout << WSAGetLastError() <<  endl;
    }
    else
    {
        cout << szReceiveString  <<  endl;
    }
    
    WSACleanup();
}

2002, Netston Consulting