Socket连接的疑难杂症

这些天终于搞定线程调度的问题
开始重点攻打Socket

C#操作Socket还是比较方便
但终于还是出了问题

我这个程序用到的Socket也不算多。大概50个Socket客户端连接到internet上不同服务器上,用的是TCP协议。数据传输内容是一些琐碎的包,用到网络带宽大概512bps

问题产生在数据延迟上了
当开启几个Socket的时候,效果非常好,实时性很高,延迟稳定
然而开到40个Socket的时候,从服务器返回的数据包延迟就不稳定了。多数稳定,但有20%左右的数据包会延迟500~1000ms。我的这个程序对实时性要求很高,这个延迟可以说是种灾难。

每个Socket都设置了NoDelay关闭了微软的nagle
每个Socket是不同的线程操作,在程序上不存在阻塞问题。
CPU占用很低,2%左右。也不是资源问题。
网络带宽没有问题,Ping的延迟也很稳定


请指点一下,到底哪里出了问题呢??
谢谢各位
posted on 2006-05-07 10:25  闪电猪  阅读(634)  评论(2编辑  收藏  举报