mongoose在Windows Server 2003上不能访问问题的解决
2015-11-23 17:48
330 查看
这两天在部署EasyDarwin开源流媒体服务器到Windows Server 2003的时候,奇怪地发现,在Windows 2003上面,mongoose的web管理端口居然无法访问,但通过netstat等命令查看,端口已经在Listening状态的;
于是经过各种代码跟踪调试,终于发现了问题的原因:
在mongoose.c中:
一般系统内都定义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正常工作了:
WEB:www.EasyDarwin.org
于是经过各种代码跟踪调试,终于发现了问题的原因:
在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.orgWEB:www.EasyDarwin.org
相关文章推荐
- django 过滤器 、日期格式化参数
- 民意调查Django实现(一)
- xcode 7 引入一维码 ZXingObjC
- golang import下划线的作用
- goto和void
- golang判断key是否在map中
- go get使用代理
- 跟着猫哥学Golang[12] - 结构体的方法
- codeforces 598D Igor In the Museum
- GOF设计模式
- golang判断文件或文件夹是否存在
- golang按行写文件
- mac系统go升级 1.4->1.5.1->1.6.2
- Google Guava官方教程(中文版)
- GOOGLE地图街景预览默认的退出按扭显示
- go语言细节
- gow上里还有gfind
- Django-Rest-Framework 教程: 快速入门
- Ubuntu 安装golang环境及环境变量设置
- 如何在 Ubuntu 上用 Go For It 管理您的待办清单