zoukankan      html  css  js  c++  java
  • winsock 服务器代码(不建议win服务器listen防火墙会禁止外部访问的)

     1 int SessionBase::ServerSock()
     2 {
     3    /*
     4     *    WSADATA是个结构体,在WSAStartup中被填充.
     5     *    WSAStartup为调用WinSock准备初始化的工作.
     6     *    第一个参数指定编程使用的WinSock规范的最高版本号.
     7     *    WSAStartup成功返回0.失败则程序退出.
     8     */
     9     WSADATA wsaData; 
    10     if((WSAStartup(0x101,&wsaData)) != 0)
    11     {
    12         return 0;
    13     }
    14   
           SOCKET clientSock;
           SOCKET serverSock;
    15     sockaddr_in local;
    16     sockaddr_in from;
    17     int fromlen=sizeof(from);
    18 
    19     local.sin_family      = AF_INET;
    20     local.sin_addr.s_addr = inet_addr( m_strPorxyAddr.c_str() );
    21     local.sin_port        = htons( m_ProxyPort );
    22 
    23     if((socket(AF_INET,SOCK_STREAM,0))==INVALID_SOCKET)
    24     {
    25         return 0;
    26     }
    27 
    28     if(bind(serverSock,(sockaddr*)&local,sizeof(local))!=0)
    29     {
    30         return 0;
    31     }
    32 
    33     if(listen(serverSock,10)!=0)            /*    backlog表示最大的连接数 */
    34     {
    35         return 0;
    36     }
    37 
    38     while(TRUE)
    39     {
    40         char temp[2048];
    41 
    42         clientSock=accept(serverSock,(struct sockaddr*)&from,&fromlen);
    43         logger.writeLog("SessionBase  Server socket accept client IP:[%s],port:[%d]",inet_ntoa(from.sin_addr),ntohs(from.sin_port));
    44 
    45         send(clientSock,temp,strlen(temp),0);
    46 
    47         closesocket(clientSock);
    48     }
    49     closesocket(serverSock);
    50 
    51     WSACleanup();        /* 确保进程不再使用WS2_32.DLL */
    52     return 0;
    53 }
  • 相关阅读:
    zabbix入门知识
    flask_login
    flask_数据库
    flask_web表单
    flask_模板
    flask_hello world
    1024 Hello World
    使用bat批处理文件备份postgresql数据库
    使用bat批处理文件备份mysql数据库
    在windows7下创建ftp服务站点
  • 原文地址:https://www.cnblogs.com/renweihang/p/9525267.html
Copyright © 2011-2022 走看看