首页
社区
课程
招聘
[讨论]请教北极星2003 对你的一个程序的疑问
发表于: 2009-8-13 10:33 4236

[讨论]请教北极星2003 对你的一个程序的疑问

2009-8-13 10:33
4236
这是帖子地址
http://bbs.pediy.com/showthread.php?t=26252

我编译了你的代码 就是那个命名管道的服务器和客户端
在服务器中我把最大连接数设置为1 并启动服务器成功

然后我就开了N个客户端 似乎都可以和服务器正常通信

不明白这个“最大连接数”是如何起限制作用的?
还是我的理解或操作不对

请指点!

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
那个并不是最大连续数,而是最大等待连接数吧
2009-8-13 11:25
0
雪    币: 257
活跃值: (44)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
不管怎样 我就是想知道那个设置是怎么起作用的 能讲讲吗
2009-8-13 11:33
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
4
如果同时发起的连接数超出了这个数值,那么多出的连接请求将不会被处理,注意是同时。如果不是同时发起的,那么连接数只跟系统资源等有关系
2009-8-13 11:52
0
雪    币: 257
活跃值: (44)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
感谢LS的关注 但是对你的说法 我是有疑问的
计算机毕竟不是真正的并行系统(至少在单核时代) 不管是多线程 还是多进程 客户端过来连接管道还是只能排队来吧?你所说的“同时发起”应该怎样理解?
下面这段话是《windows网络编程》中的:

nMaxInstances参数指定对一个命名管道来说,最多可创建多少个实例或管道句柄。所谓
管道的“实例”,其实就是从本地或远程客户机应用到创建那个命名管道的服务器应用程序的
一个连接。
2009-8-13 12:03
0
雪    币: 229
活跃值: (483)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
6
同winsock编程中的listen(s,n)函数一样吧..
就是最大的等待连接数...
当等待队列中的个数达到n时,再connect连接就直接返回连接错误,而不会阻塞等待
2009-8-13 12:12
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
7
发起连接是同时的(这里说的不是绝对的同时,也可以理解成请求重叠在一起,就象是同时发起的一样),但处理连接请求时是排队的啊,那个值相当于队列的容量,容量以内可以排上队,超出的就无法处理了
2009-8-13 12:30
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
8
跑题了…我说的不可全信,仅供参考吧
2009-8-13 12:38
0
雪    币: 257
活跃值: (44)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
刚才调了下代码 弄明白了

原来 作者的服务器程序 每次处理完客户端的一个请求后 就把连接关闭了 然后继续等 这样一来 不管开多少客户端程序 实际上每次运行中的连接只有一个
将DisconnectNamedPipe放到循环外面 这样就很容易看到设置的效果了
多谢LS各位的关注
2009-8-13 17:29
0
游客
登录 | 注册 方可回帖
返回
//