服务器端接收大量数据的问题(100分)

  • 主题发起人 主题发起人 guorm
  • 开始时间 开始时间
G

guorm

Unregistered / Unconfirmed
GUEST, unregistred user!
我在工作中遇到一个很棘手的问题,请各位大侠帮忙:
一个服务器端需要接收6-12个客户端传来的数据文件,这段程序原来是用VB写的,发现一个
很突出的问题是刚开始可以正常的接收数据文件(用的SOCKET控件),可总是1个小时左右
服务器端就不再接收数据了,我想知道这是什么原因造成的?
客户端发送数据文件的频率大致是每10秒1个,每个25K左右。
我想现在用DELPHI5做服务器端(客户端暂时不能改),用什么方法合适?如果有实际使用过
的源代码就更好了,谢谢!
我的Email:guorm@sohu.com
 
我前一阵也遇到这个问题,但也不知道具体的原因,最后没有办法,用c++写了一个,原理
是起一个线程调用阻塞函数来接收消息,读出数据后发送消息到消息处理函数。结果问题
解决了。
 
看来这确实是一个比较复杂的问题,还望各位高手不吝赐教,多谢了!
 
各位大狭:
分不够可以加吗,为什么就没人给提点建议呢?
 
我也有这样的问题呢?谁指点一下??
 
1.用TServerSocket的多线程模式.
2.每10秒一次的数据在客户端发送完毕后必须断开连接,不要一直使用该连接.
3.直接换为indy控件.
 
问题非常严重,关注!
 
to wql:
换了indy就不挂啦???!!!
 
indy有许多技术防止“挂”!
 
数据量大的话强烈建议用win api编写,这样的好处有:
1、容易控制socket,可以添加自己的一些控制代码
2、稳定性好,出了问题也容易调试
3、可扩充性强
。。。

具体的写法可以参考一些socket的书,还可以和我联系。
 
indy的ServerSocket会为每个连接开辟一个线程,当连接终端后自动释放该线程,并在释放前
触发该连接的disconnect的事件。无论服务端还是客户端的连接挂断,disconnect事件都能
即时检测到。该连接线程提供connection属性,可供服务端调用,对该线程连接的客户端进行
数据收发。



 
TServerSocket也会开辟的,indy只是处理得更好而已的!!!
 
呵呵呵呵,我找到办法咯,就是自己写个Server,不要仍东西哦[8D]
 
急切关注
 
后退
顶部