在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
为了能让我们的服务程序更加稳定,有些细节问题必须解决。就如上一讲中提到的客户端拔掉网线,造成服务器上TCP变成死连接,如果死连接数量过多,对服务器能长期稳定运行是一个巨大的威胁。 uses IdTCPConnection,IdWinsock2 ........ type ........ procedure TServerContainer1.DSServer1Connect 观察上述代码,我们把心跳包放到服务端上执行,如果服务器的某个TCP连接在5秒钟没有收到数据,将会发送向对端发送心跳包,间隔3秒钟,连续发送5次(参数详解见上一讲高级技术4)。如果5次以后对端还没有应答,服务器将结束该TCP连接。TCP的连接可以使用 netstat -p tcp 命令查看。 上述代码还不能直接使用,还需要引用一个winsock2.pas 当该TCP结束后,delphi编写的服务程序会自动结束和数据库的连接。我用的是FireBird数据库,大家可以使用命令查看 SELECT MON$USER, MON$REMOTE_ADDRESS, 现在服务器的tcp死连接和数据库的死连接都清除了,我们的系统将能长期稳定的运行。 http://blog.csdn.net/zhangxiaonanwin/article/details/6048912 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论