我刚刚接触这一方面的内容。新手来的,希望可以给一个例子,或思路,谢了

解决方案 »

  1.   

    用SOCKET写的话很简单的,不知道你懂不懂SOCKET编程的基础内容,这里给出一个小例子。
    /*Server.cpp*/
    #include <winsock2.h>
    #include <stdio.h>int main()
    {
    WORD wVersionRequested;
    WSADATA wsaData;
    int err;
    wVersionRequested = MAKEWORD( 1, 1 );
    err = WSAStartup( wVersionRequested, &wsaData );
    if ( err != 0 ) 
    {
    return 1;
    }
    if ( LOBYTE( wsaData.wVersion ) != 1 ||
            HIBYTE( wsaData.wVersion ) != 1 ) 
    {
    WSACleanup( );
    return 2; 
    }
    //设置SOCKET为TCP模式
    SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);

    SOCKADDR_IN addrSrv;
    addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
    addrSrv.sin_family=AF_INET;
    addrSrv.sin_port=htons(8000);

    bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
    listen(sockSrv,5); SOCKADDR_IN addrConn;
    int len=sizeof(SOCKADDR); char recvBuf[100];
    SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrConn,&len); send(sockConn,"This is Server send!",strlen("This is Server send!")+1,0);
    recv(sockConn,recvBuf,100,0); printf(recvBuf);
    printf("\n");
    closesocket(sockConn);
    closesocket(sockSrv);
    WSACleanup(); return 0;
    }
      

  2.   

    /*Client.cpp*/
    #include <winsock2.h>
    #include <stdio.h>int main()
    {
    WORD wVersionRequested;
    WSADATA wsaData;
    int err;
    wVersionRequested = MAKEWORD( 1, 1 );
    err = WSAStartup( wVersionRequested, &wsaData );
    if ( err != 0 ) 
    {
    return 1;
    }
    if ( LOBYTE( wsaData.wVersion ) != 1 ||
            HIBYTE( wsaData.wVersion ) != 1 ) 
    {
    WSACleanup( );
    return 2; 
    } SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrSrv; //这里是要设置要发送的主机地址
    addrSrv.sin_addr.S_un.S_addr=inet_addr("192.168.18.3");
    //设置地址族,只能是AF_INET
    addrSrv.sin_family=AF_INET;
    //设置通讯端口
    addrSrv.sin_port=htons(8000); char recvBuf[100];
    connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
    recv(sockClient,recvBuf,100,0);
    send(sockClient,"This is Client send!",strlen("This is Client send!")+1,0); printf(recvBuf);
    printf("\n");
    closesocket(sockClient);
    WSACleanup(); return 0;
    }
    这只是个简单应用,先运行Server再运行Client就能看到通讯的效果,这里是基于TCP的编译时在addrSrv.sin_addr.S_un.S_addr=inet_addr("192.168.18.3");这里改一下,IP要改为Server的IP
      

  3.   

    还有,不知道你是不是知道,编译的时候记得在工程的settings->Link里的Object/Library modules里加上WS2_32.LIB
      

  4.   

    vckbase.com上面有,去找找看。
      

  5.   

    买本书  《  windows  网络编程 》