TCP/IP:请教如何限制tcp连接数量?

kylie 2000-11-17 10:24:00
我是新人,如有什么不妥请原谅。
我正在写个sco unix 下tcp服务程序,已经基本完成。但是要限制tcp连接数量。
程序结构是并发的,父进程负责监听,一个连接一个子进程。
我的初步设想是 父子进程间通讯,通过限制子进程数目达到目的。
第二个设想是:模仿netstat,直接监控tcp连接数目。
可是我手上的资料只能让我完成第一个设想。所以在此请高手指点一二,
或提供netstat源程序,或告知相关资料。谢谢。
我已经有windows下的netstat源程序,但是无法移植。呜呜。
也欢迎就此问题做各方面的探讨!谢谢!!!
...全文
684 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kylie 2000-12-19
  • 打赏
  • 举报
回复
谢谢,我已经做好了程序,使用匿名共享内存,用无名信号灯同步。
因为忙其它事情所以。。。。。。。
而且上次第一次给分,好象没有成功,今天再试一次。
borz 2000-12-06
  • 打赏
  • 举报
回复
仅供参考:
一。在Listen时提供后台链接队列参数,用来控制同一时刻的最大物理链接数
二。在子进程和父进程之间共享一个固定大小的池(实际上是数组之类的结构),fork之前
先检测当前池中有无空闲的CAO,如没有,则说明最大的有效服务数已到达,放弃该链接怎么处理随你),否则fork子服务进程,并把自己(子进程ID号)加入到该池中,上述操作一定要是原子
操作,同样,当服务进程结束后则把自己所占的CAO清空。 我现在写的代码就采用这种方式,目前工作良好!
kylie 2000-12-06
  • 打赏
  • 举报
回复
zzssyyvc兄:可以告诉我在那里查得到那些函数吗?

等待子进程返回信号时有些小问题需要处理。。。。。
看来我还是要回到父子进程间通讯了。呵呵
这2天忙,没有上来。等我有空搞完了在仔细说说。。。。
zzssyyvc 2000-12-04
  • 打赏
  • 举报
回复
只有用内核对象,用waitforsingleobjec,createSemaphore,releaseSemaphore等等吧
victorchen_2000 2000-12-04
  • 打赏
  • 举报
回复
建一个全局变量,在accept前限制。
jiujiejushi 2000-12-04
  • 打赏
  • 举报
回复
可以用全局变量控制,设一个数组,包含N个变量,listen所在程序负责分配,分配每个连接一个,置为1,具体处理服务完成后,清0.这样就避免了冲突又不用系统资源.
fat2000 2000-12-03
  • 打赏
  • 举报
回复
我有一點想法,不知道行不行。比方說建立一個全局變量,然後對子進程返回的信號添加自己的函數來維護這個計數,當計數為限制值的時候,就不能再連接了。這裡會有個同步的問題。至於信號處理函數該實現什麽功能,就要你自己看了。
kylie 2000-11-27
  • 打赏
  • 举报
回复

beyondly兄:请问APUE在那里呢?
wangjue28兄:
我fork 20 或更多的子进程没有办法限制。呵呵,服务程序全都立即反应了!

int listen (s, backlog)
int s, backlog;

The backlog parameter defines the maximum length to which the queue of
pending connections may grow. If a connection request arrives with the
queue full, the client will receive an error with an indication of
ECONNREFUSED.

而且我觉得不应该在listen上限制tcp的连接数目(好象也没有办法在此限制)
我觉得在accept前限制更好些。
wangjue28 2000-11-26
  • 打赏
  • 举报
回复
listen(f,5)
通过5限制不就OK了
这个数字可以写在文件,或者环境中,就比较灵活
wangjue28 2000-11-26
  • 打赏
  • 举报
回复
listen(f,5)
通过5限制不就OK了
beyondly 2000-11-26
  • 打赏
  • 举报
回复
APUE上不是有详细的介绍吗?

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧