CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

Socket高手帮忙看一下,来者有分

楼主homeland520(天山之王(哈哈两声说Beybey))2006-02-07 20:55:04 在 Java / J2SE / 基础类 提问

我有个往服务器写数据的socket的程序,起了3个进程,开始运行6-8个小时没有问题,后来觉的速度逐渐减慢,我用如下命令在服务器端发现Recv-Q,和Send-Q逐渐增多,到一定程度就不动了,往Server写数据的socket也逐渐变慢,但是连接也没有断,也没有超时,另外我起用了TcpNoDelay,也设置了超时.  
   
  $   netstat   -n   |   grep   192.168.0.12  
  tcp           8310     13032   192.168.0.11:8001                   192.168.0.12:41801                         ESTABLISHED    
  tcp         78431     13032   192.168.0.11:8001                   192.168.0.12:43972                         ESTABLISHED    
  tcp         14022     13032   192.168.0.11:8001                   192.168.0.12:41439                         ESTABLISHED  
   
  在这里谢过各位了,希望高手帮忙把把脉,另外Recv-Q和Send-Q是做什么用的?体现什么现象? 问题点数:200、回复次数:11Top

1 楼forgetwang(王焱)回复于 2006-02-07 21:04:51 得分 10

Recv-Q,和Send-Q是socket等待处理的队列.应该是你对连接的处理有问题.Top

2 楼poiunet(1 1)回复于 2006-02-07 21:11:12 得分 5

ZTop

3 楼wangzhanlili(小木头)回复于 2006-02-07 21:13:21 得分 35

Recv-Q和Send-Q   是tcp   协议中的序号,用来表示/实现滑动窗口的  
   
  你检查一下是不是因为你的,客户端/服务端   的程序问题。比如数组越界。  
   
  socket也逐渐变慢--------   有没有停止?  
   
  照理说   Recv-Q/Send-Q   不变的话,表示没有数据在传输了Top

4 楼homeland520(天山之王(哈哈两声说Beybey))回复于 2006-02-07 21:36:33 得分 0

Socket停止了,但是连接没有断开,因为我的发送方是一个队列,单线程向Server写数据,到最后就停了,但是连接不断,这个确实头疼好长时间了,Top

5 楼homeland520(天山之王(哈哈两声说Beybey))回复于 2006-02-07 21:41:15 得分 0

有什么这方面的书籍或者资料可以参考的吗?或者你们遇到可能出现这种现象的情况Top

6 楼forgetwang(王焱)回复于 2006-02-08 11:16:48 得分 5

看来你做的是个长连接,要做一个定时器判断:一定时间内没有数据传输就关闭连接.Top

7 楼liubeiqi(无爱无悔)回复于 2006-02-08 11:27:27 得分 5

STUDYTop

8 楼christion3(黑翼堕天使)回复于 2006-02-08 11:43:21 得分 5

学习```这个还米学到  
  帮顶Top

9 楼TinyJimmy(Jimmy)回复于 2006-02-08 12:24:49 得分 100

好像阻塞得数据没有处理,   客户端不断的发,   服务器也收到了,   在回应,   但客户端没有处理.Top

10 楼closetome(即鹿无虞,惟入于林中。君子几,不如舍。往吝。)回复于 2006-02-08 13:03:04 得分 35

建立一个监视线程随时报告socket线程池的资源,  
  你是用channel做的吗?最好可以使用socketchannel,抗压性要比同步的socket好  
  在java.nio的包包里  
  长时间不用的socket应该摒弃,如果这个socket再次启用的话,客户端自然会联系上Top

11 楼homeland520(天山之王(哈哈两声说Beybey))回复于 2006-02-08 21:32:43 得分 0

TinyJimmy说的对,谢谢各位了,散分了Top

相关问题

  • Socket高手帮忙看一下,来者有分
  • Dll+Socket的问题,有空了看一下,来者有分,谢谢
  • 请大家看一下,来者有分
  • 请高手看一下,来者有分
  • 帮我看一下这个socket错误(参与有分)
  • 各位高手進來看一下,進者有分...
  • 大家来看一下这个问题,来者有分。
  • 在線等候,請和位進來看一下.進者有分...
  • 在線等候, 請各位進來看一下.進者有分.....
  • 帮我看一下这个程序吧。来者有分

关键词

  • socket
  • 数据
  • 连接
  • 服务器
  • 客户
  • tcp
  • recv
  • 客户端
  • established
  • 处理

得分解答快速导航

  • 帖主:homeland520
  • forgetwang
  • poiunet
  • wangzhanlili
  • forgetwang
  • liubeiqi
  • christion3
  • TinyJimmy
  • closetome

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo