socket常用的只要几个函数就够了,很简单的.
 
自己看msdn很容易的.我这里有汇编例程

解决方案 »

  1.   

    把socket的流程与原理掌握了,在背几个函数,就可以建立最基本的socket程序了。
      

  2.   

    To xiaoy;
       给200分,我发一个WinSock2.2的例程。
      

  3.   

    to xioay: 给 190分, 就发, 呵呵
      

  4.   


    #include "stdafx.h"
    #include "winsock.h"
    #define Server "public1.ptt.js.cn"
    #define COMMAND "HELO\r\n\r\n"
    #define PORT 25
    int SockSendAll(SOCKET s,LPCSTR buf,UINT length)
    {
    UINT nSent=0;
    int c_send;
    while(nSent<length) {
    c_send=send(s,buf+nSent,length-nSent>1024? 1024:length-nSent,0);
    if(c_send<0)
    return -1;
    nSent+=c_send;
    }
    return nSent;
    }int  main()
    {
    int rc;
    WSADATA ws;
    rc = WSAStartup(0x0101,&ws);if(rc!=0) {
    #ifdef _DEBUG
    printf("Error :WinSock initialize failed\n");
    #endif
    return -1;
    }struct sockaddr_in sa;
    HOSTENT *hp;
    SOCKET sock=NULL;sock =socket(AF_INET,SOCK_STREAM,0);
    if(sock==INVALID_SOCKET ) {
    #ifdef _DEBUG
    printf("Error :Can't initialize TCP/IP socket\n");
    #endif
    return INVALID_SOCKET;
    }hp=gethostbyname(Server);
    if(!hp) {
    #ifdef _DEBUG
    printf("Error :Can't find this server :%s\n",Server);
    #endif
    return INVALID_SOCKET;
    }sa.sin_family   = AF_INET;
    sa.sin_addr.s_addr = *(unsigned long*)hp->h_addr; /* Server IP */
    sa.sin_port    = htons(PORT); /* Server Port number */if (connect(sock,(struct sockaddr*)&sa,sizeof(sa))!=0){
    #ifdef _DEBUG
    printf("Error :Connection failed\n");
    #endif
    return INVALID_SOCKET;
    }     SockSendAll(sock,COMMAND,sizeof(COMMAND)-1);
         char recvbuf[4096];
         int c_Len=0;
    int c_Recv=0;
    c_Recv=recv(sock,recvbuf+c_Len,4096-c_Len>1024? 1024:4096-c_Len,0);//recv length
    *(recvbuf+c_Recv)=0;
         printf("%s\n",recvbuf);
    }