请问如何在vc中使用winsock控件?最好用个非常简单的例子.
谢谢.

解决方案 »

  1.   

    一个基本的socket程序,找本参考书看看吧!#include <winsock2.h>DWORD ClientThread(LPVOID lpParam)
    {
    SOCKET sock = (SOCKET)lpParam;
    char szBuf[DEFAULT_BUFFER];
    char szBuf2[] = "1038  1234567892          000000200101";
    int nRet, nLeft, idx; while(1)
    {
    nRet = recv(sock,szBuf,DEFAULT_BUFFER,0);
    if(nRet == 0)
    break;
    else if(nRet == SOCKET_ERROR)
    {
    printf("recv failed: %d\n",WSAGetLastError());
    break;
    }
    szBuf[nRet] = '\0';
    printf("RECV: %s\n",szBuf);
    if(!bRecvOnly)
    {
    nLeft = nRet;
    idx = 0;
    while(nLeft > 0)
    {
    nRet = send(sock, &szBuf2[idx], nLeft,0);
    if(nRet == 0)
    break;
    else if(nRet ==SOCKET_ERROR)
    {
    printf("send() failed: %d\n",WSAGetLastError());
    break;
    }
    nLeft -= nRet;
    idx += nRet;
    }
    }
    printf("SEND: %s\n", szBuf2);
    }
    return 0;
    }int main(int argc, char **argv)
    {
    WSADATA wsd;
    SOCKET sListen,
    sClient;
    int iAddrSize;
    HANDLE hThread;
    DWORD dwThreadID;
    struct sockaddr_in local,
    client;
    if(WSAStartup(MAKEWORD(2,2), &wsd) != 0)
    {
    printf("failed to load Winsock!\n");
    return 1;
    } sListen = socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
    if(sListen == SOCKET_ERROR)
    {
    printf("socket() failed: %d \n",WSAGetLastError());
    return 1;
    } local.sin_family = AF_INET;
    local.sin_port = htons(iPort);
    local.sin_addr.s_addr = inet_addr(szAddress);
    if(local.sin_addr.s_addr == INADDR_NONE)
    {
    Usage();
    }
    else
    local.sin_addr.s_addr = htonl(INADDR_ANY); if(bind(sListen,(struct sockaddr*)&local,sizeof(local)) == SOCKET_ERROR)
    {
    printf("bind() failed : %d \n", WSAGetLastError());
    return 1;
    } printf("start listening on %s:%d...\n",inet_ntoa(local.sin_addr),ntohs(local.sin_port));
    listen(sListen, 8); while(1)
    {
    iAddrSize = sizeof(client);
    sClient = accept(sListen, (struct sockaddr*)&client,&iAddrSize);
    if(sClient == INVALID_SOCKET)
    {
    printf("accept() failed: %d \n",WSAGetLastError());
    break;
    }
    printf("accepted client: %s:%d\n",inet_ntoa(client.sin_addr),
    ntohs(client.sin_port)); hThread = (LPVOID)_beginthread(ClientThread,0,(LPVOID)sClient); if(hThread == NULL)
    {
    printf("CreateThread() failed: %d\n",WSAGetLastError());
    break;
    }
    CloseHandle(hThread);
    }
    closesocket(sListen); WSACleanup();
    return 0;
    }
      

  2.   

    http://www.codeproject.com/internet/w3mfc.asp