zoukankan      html  css  js  c++  java
  • mongoose在Windows Server 2003上不能访问问题的解决

    这两天在部署EasyDarwin开源流媒体服务器到Windows Server 2003的时候,奇怪地发现,在Windows 2003上面,mongoose的web管理端口居然无法访问,但通过netstat等命令查看,端口已经在Listening状态的;
    于是经过各种代码跟踪调试,终于发现了问题的原因:
    在mongoose.c中:

    static void ns_add_to_set(sock_t sock, fd_set *set, sock_t *max_fd) {
      //if ( (sock != INVALID_SOCKET) && (sock < FD_SETSIZE) ) {
      if ( sock != INVALID_SOCKET ) {
        FD_SET(sock, set);
        if (*max_fd == INVALID_SOCKET || sock > *max_fd) {
          *max_fd = sock;
        }
      }
    }

    一般系统内都定义FD_SETSIZE为1024,在Windows Server 2008、win7中,sock值都会低于1024,但是在Windows Server 2003中,sock描述居然大于1024,导致mongoose对连接不进行select accept处理;
    我们修改成:if ( sock != INVALID_SOCKET ) 判断就可以了;
    EasyDarwin可以在Windows Server 2003正常工作了:
    这里写图片描述

    获取更多信息

    邮件:support@easydarwin.org

    WEB:www.EasyDarwin.org

  • 相关阅读:
    php基本语法
    php的环境搭建
    Java数组及其内存分配
    最快的maven镜像
    配置maven到运行
    配置maven
    maven的eclise配置
    mysql中bit_count和bit_or函数的含义
    怎样查看MySQL是否区分大小写
    linux忘记mysql密码找回方法
  • 原文地址:https://www.cnblogs.com/babosa/p/5904678.html
Copyright © 2011-2022 走看看