mongoose在Windows Server 2003上不能访问问题的解决
2023-09-14 08:59:59 时间
这两天在部署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
相关文章
- Windows Server 2003 IIS 配置网站出现问题及解决
- 实现一个跨平台的mysock库(windows、linux)
- VMware下Windows Server 2012添加新磁盘
- windows Server 2008 R2 开关机取消登录时要按Ctrl+Alt+Delete组合键登录的方法
- 学生信息管理系统——配置windows防火墙允许访问SQL Server 2008服务器
- windows server 2008系统安装SNMP服务
- Server-u FTP与Windows用户集成权限详解
- 试用ArcGIS Server 10.1 X64 for windows
- MFC Windows 程序设计[300]之简单文件夹浏览实现(附源码)
- [ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [上篇]
- windows系统下如何把excel数据转换成markdown格式的表格
- Sql Server连接数据库(Windows模式及不用密码及用户名模式)
- windows环境下学会使用conda 创建虚拟环境,解决python版本与库不兼容问题
- Qt实用技巧:Qt中添加对windows api的支持,显示/隐藏任务栏和桌面(解决无法找到windows api)
- adb server无法启动方法,结束占用端口的进程 windows 查杀进程
- Windows 使用 Gogs 搭建 Git 服务器(转)
- Windows API一日一练(38)SetWindowPos函数
- Windows 服务器刷题(带答案)
- Windows部署halo并配置自启动服务