当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++基础入门教程

WinSocket 编程

    /*下面是服务端的连接的初始化函数,

    SOCKET sockserver(const char *service,const char *transport,int qlen)

    SOCKET TCPserver(const char * service,int qlen)

    SOCKET UDPserver(const char * service,int qlen)

    直接调用下面三个函数,就可以对socket 进行初始化,

    有了它,我们进行socket 编程非常的方面

    笔者还作了客户端的函数,及网络编程的例子,如有需要者,请E-mail:[email protected]

    */


    #include "stdlib.h"
    #include "winsock.h"
    #include "stdio.h"
    #include "iostream.h"
    #include "string.h"

    #ifndef INADDR_NONE
    #define INADDR_NONE 0xffffffff
    #endif

    SOCKET sockserver(const char *service,const char *transport,int qlen)

    {
     strUCt protoent *protoin;
     struct sockaddr_in ipaddr;
     struct servent *servin;
     int type;
     SOCKET sock;

     memset(&ipaddr,0,sizeof(ipaddr));
     ipaddr.sin_family=AF_INET;
     ipaddr.sin_addr.s_addr=INADDR_ANY;

     if(servin=getservbyname(service,transport))
      ipaddr.sin_port=ntohs((u_short)servin->s_port);
     else
      if((ipaddr.sin_port=htons((u_short)atoi(service)))==0)
      {
       printf("get portnum error");
       WSACleanup();
       getchar();
       exit(1);
      }

     if((protoin=getprotobyname(transport))==0)
     {
      printf("get protocol error");
      WSACleanup();
      getchar();
      exit(1);
     }

     if(strcmp(transport,"udp")==0)
      type=SOCK_DGRAM;
     else
      type=SOCK_STREAM;

     sock=socket(PF_INET,type,protoin->p_proto);

     if(sock==INVALID_SOCKET)
     {
      printf("create socket error");
      WSACleanup();
      getchar();
      exit(1);
     }

     if(bind(sock,(struct sockaddr*)&ipaddr,sizeof(ipaddr))==SOCKET_ERROR)
     {
      printf("sock bind error");
      WSACleanup();
      getchar();
      exit(1);
     }

 

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接