我想是我的客户端有问题,我用的MFC,新建的数据接收线程为什么不能是类的成员函数?

解决方案 »

  1.   

    能给我写一个用SOCKET写客户端的代码吗?
      

  2.   

    bind()                    linsten
    connect()                  accept()
    receive()                   send()
    send()                       receive()
      

  3.   

    //Get html page by SDK socket
    #define host_name "www.csdn.net"
    #define winsock_version 0x0101
    void main()
    {
        SOCKADDR_IN saServer;
    LPHOSTENT lphostent;
    WSADATA wsadata;
        SOCKET hsocket;
    int nRet;
        char hostname[100] ;
    wsprintf(hostname,"GET /expert/topic/378/378382.shtm HTTP/1.0 %c%c",10,10);
    printf("%s",hostname);
    char dest[1000];
    if(WSAStartup(winsock_version,&wsadata))
    printf("can't open");
        lphostent=gethostbyname(host_name);
        if(lphostent==NULL)
    printf("lphostent is null");
    hsocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
        saServer.sin_family = AF_INET;
    // Use def. now, need to handle general case
    saServer.sin_port = htons(80);

    saServer.sin_addr = *((LPIN_ADDR)*lphostent->h_addr_list);
        nRet = connect(hsocket, (LPSOCKADDR)&saServer, sizeof(SOCKADDR_IN));
    if (nRet == SOCKET_ERROR)
    {
    printf("can't connect");
    closesocket(hsocket);
    return;
    }
    else
    printf("connected with %s\n",host_name);
        nRet = send(hsocket, hostname, strlen(hostname), 0);
    if (nRet == SOCKET_ERROR)
    {
    printf("send() failed");
    closesocket(hsocket);

    }
    else
    printf("send() OK\n");
    nRet=1;
    while(nRet>0)
    {
    nRet=recv(hsocket,(LPSTR)dest,sizeof(dest),0);
    if(nRet>0)
    dest[nRet]=0;
    else
    dest[0]=0;
    printf("\nReceived bytes:%d\n",nRet);
    printf("Result:\n%s",dest);
    }

    }
      

  4.   

    masterz()说得差不多,你再参考参考msdn吧,不过连不是可能是其它问题