服务器指定lifecycle为Session方式:
这是delphi默认属性。Session会为每个来自客户端的链接,建立一个线程来实例化。创建一个内在连接(线程),供客户端直接使用。这个线程和实例化并不释放,直到客户端中断连接。如果有100个以上客户端,那么你的服务器将会有100线程和实例,对服务器硬件和内存是个考验。
这是delphi默认属性。Session会为每个来自客户端的链接,建立一个线程来实例化。创建一个内在连接(线程),供客户端直接使用。这个线程和实例化并不释放,直到客户端中断连接。如果有100个以上客户端,那么你的服务器将会有100线程和实例,对服务器硬件和内存是个考验。
解决方案 »
- 讨论写什么样的软件赚钱的群,,有兴趣的朋友可以加入!
- 文件传输功能实现方法讨论
- 请问你们帮别人做管理系统怎么解决数据库问题?通常都用什么数据库?还有access数据库可以存多少条记录???
- 求救。。。。。如何判断我的程序一段时间没有动作后自动进入休眠,像屏保一样!!
- 考英语四级的同学看看好消息!!
- 改变窗口大小时窗口会抖动,我用lockwindowupdate(handle)/lockwindowupdate(0)后, 改变窗口大小时桌面会抖动,怎幺办呢
- 100分请教最好的delphi书籍
- 怎么又错了
- 初学Delphi,请推荐一些好书
- 中间层封装哪些商业规则????
- 急求 delphi 7 解析xml 数据
- 有用overbyteICS控件的朋友吗,来看看访问这个网址的问题
1、如果客户端正常下线,它释放;
2、如果客户端非正常下线,如:网络断线,EXE出现异常,它也释放。所以,当客户端出现意外,已经造成服务器释放的情况下,客户端再现读取数据,就会出现
再调用服务器的方法会返回错误
Socket Error # 10054 Connection rest by peer如何解决,需要软件重新连接,才能正常读取数据。
谢谢大侠回复,不过我想知道的问题是,我用的是http方式连接的服务器,为什么会有一个tcp连接(网络小白请原谅),而且当我把客户端的网卡禁用再启动后,我就无法连接服务器了,这时我就进行了重连,重连可以成功,不过之前那个tcp连接就死掉了,而且那个session创建的datamodule之类的东西也没释放。我在网上看服务器那边主动释放session都是基于tcp ip连接来的,http根本没人提及,但实际上如果客户端断网的话,会产生一个死session直到重启服务器,如果网络不太稳定的话,服务器感觉很容易耗尽资源,求如果处理
每打开一次会占用一个连接 close也不行 只能释放
不然会一直占用连接的 直到内存占完 死机
网上查到都是用DSTCPServerTransport1Connect事件中获取tcp连接通道,然后杀掉的
而TDSHTTPService没有类似的事件,也获取不了连接通道用http连接的主要看资料说可以穿透防火墙,外网访问用这个好
使用前者 按几次 就挂掉了
ps这个东西搞完后还是去学。net吧,用delphi的感觉越来越少了
谢谢大侠回复,不过我想知道的问题是,我用的是http方式连接的服务器,为什么会有一个tcp连接(网络小白请原谅),而且当我把客户端的网卡禁用再启动后,我就无法连接服务器了,这时我就进行了重连,重连可以成功,不过之前那个tcp连接就死掉了,而且那个session创建的datamodule之类的东西也没释放。我在网上看服务器那边主动释放session都是基于tcp ip连接来的,http根本没人提及,但实际上如果客户端断网的话,会产生一个死session直到重启服务器,如果网络不太稳定的话,服务器感觉很容易耗尽资源,求如果处理我的DataSnap服务器,试过当关闭网卡,造成tcp ip断线,服务器的动态连接会自动释放。
我在服务器上弄了一个计数器,显示释放了。
可是我的就是没释放啊
如果我用tcp连接服务器,加上KeepAlive 后,禁用客户端网卡,重新启动网卡后,过了设定时间,服务器会断掉tcp连接,但如果网卡不启用,那个tcp连接也一直都在。
如果是http连接服务器,我就发现那边有个什么sessiontimeout,不过设置成12000,禁网卡后过了12秒也不会自动断tcp连接啊。
请问大侠有什么特别的设置吗?万分感谢
我是在TDSServerModule的DSServerModuleDestroy、DSServerModuleCreate事件里面加了断点,如果客户端做完查询操作,创建了TDSServerModule,正常关闭客户端时,会进入DSServerModuleDestroy断点;如果是客户端断网重连,发现又重新进入了DSServerModuleCreate,而之前创建的那个TDSServerModule,只有当关闭服务器时才能进入断点