www.pudn.com > liuqudong.zip > PCClient.cpp


//====================================================================== 
// PCClient.cpp : Simple client for the tick server example 
// 
// Written for the book Programming Windows CE 
// Copyright (C) 2003 Douglas Boling 
//====================================================================== 
 
#include "stdafx.h" 
 
int _tmain(int argc, _TCHAR* argv[]) 
{ 
    SOCKET sock; 
    SOCKADDR_IN dest_sin; 
    WORD wPort = 1000; 
    int rc; 
 
    if (argc < 2) { 
        printf ("Syntax: %s  %d\r\n", argv[0], argc); 
        return 0; 
    } 
    // Init winsock 
    WSADATA wsaData; 
    if ((rc = WSAStartup(0x101,&wsaData)) != 0) { 
        printf ("WSAStartup failed\r\n"); 
        WSACleanup(); 
        return 0; 
    } 
    // Create socket 
    sock = socket( AF_INET, SOCK_STREAM, 0); 
    if (sock == INVALID_SOCKET) { 
        return INVALID_SOCKET; 
    } 
 
    // Set up IP address to access 
    memset (&dest_sin, 0, sizeof (dest_sin)); 
    dest_sin.sin_family = AF_INET; 
    dest_sin.sin_addr.S_un.S_addr = inet_addr (argv[1]); 
    dest_sin.sin_port = htons(wPort); 
 
    printf ("Connecting to %s  Port %d\r\n",  
            inet_ntoa (dest_sin.sin_addr), wPort); 
 
    // Connect to the device 
    rc == connect( sock, (PSOCKADDR) &dest_sin, sizeof( dest_sin)); 
    if (rc == SOCKET_ERROR) { 
        printf ("Err in connect. %d\r\n", WSAGetLastError()); 
        closesocket( sock ); 
        return INVALID_SOCKET; 
    } 
    DWORD dwCmd = 1, dwTicks = 0; 
 
    // Ask for ticks 
    send (sock, (char *)&dwCmd, 4, 0); 
    recv (sock, (char *)&dwTicks, 4, 0); 
    printf ("Ticks: %d\r\n", dwTicks); 
 
    // Wait 1/4 second and ask again 
    Sleep(250); 
    send (sock, (char *)&dwCmd, 4, 0); 
    recv (sock, (char *)&dwTicks, 4, 0); 
    printf ("Ticks: %d\r\n", dwTicks); 
 
    // Terminate connection and close socket 
    dwCmd = 0; 
    send (sock, (char *)&dwCmd, 4, 0); 
    Sleep(100); 
    closesocket (sock); 
    return 0; 
}