VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1147|回复: 9

ServerSocket和ClientSocket的怪问题

[复制链接]

1

主题

5

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-11-4 10:30:02 | 显示全部楼层 |阅读模式
局域网,目前三个客户端(开发测试用)最大为九个,长连接,数据量大,数据包结构固定但不定长,D7+SERVERSOCKET和CLIENTSOCKET 服务器和客户端都是异步。

流程:客户端随时可能会产生数据,产生数据后即上传服务器,服务器收到后解析写库(用时最大不超过1秒)。然后下发处理完成通知。客户端收到后继续上传。

现在的问题是运行一段时间后(一到两个小时,也可能要三个小时),就会出现问题,或者是服务接收不到客户端上传的数据,或者是客户端接收不到服务器的处理完成通知。不知道是怎么回事?
回复

使用道具 举报

2

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-11-4 19:00:01 | 显示全部楼层
是不是连接不上了?用netstat -an 在命令行查一下连接状态
回复

使用道具 举报

0

主题

8

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-11-4 19:15:01 | 显示全部楼层
通常都用Indy的哦~
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-11-4 19:30:02 | 显示全部楼层
长连接不是保持连接,你应该传输一组数据后,关闭连接,新数据重新建立连接,可以不免这种情况。
回复

使用道具 举报

1

主题

5

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-11-4 19:45:01 | 显示全部楼层
连接应该没有问题,因为出问题后,如果是不能接收 那么就可以发送 如果是发送不到 则接收可以。这应该说明连接没断吧
现在不想改INDY,只是想知道这是怎么一回事
传完数据关闭这个是不可行的 我是系统是实时的 随时都有可能有数据,会造成不断的连接关闭
回复

使用道具 举报

0

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-11-4 20:00:01 | 显示全部楼层
socket常时间不通讯好像容易出现这种情况,你可以用个计时器,常时间不交互的时候,每10分钟相互发一个没有的信息数据,试试
回复

使用道具 举报

1

主题

5

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-11-4 20:30:01 | 显示全部楼层
晕呀 不是长时间不交互 是一直在交互 一直有数据在传输
正常传输过程中,突然就不正常了。。。
回复

使用道具 举报

0

主题

12

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
发表于 2020-11-4 20:45:01 | 显示全部楼层
关注!
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-11-4 21:15:01 | 显示全部楼层
我这里也出现这个问题,客户端大概有5-7个一开始还挺快的用了3-4个小时就慢,并且内存逐渐大,达到900M,最后就死了!
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-11-4 22:45:01 | 显示全部楼层
估计是服务器端的错误了,服务器端拥塞了,数据到达Windows的TCP缓存,但上层数据未处理。可能是服务器端你使用的不是事件驱动方式编写程序,而是主动的接收数据,当客户端发送数据拥塞后处理后续数据不正确导致服务器按结构解析数据时候出现长等待,造成数据进一步拥塞。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表