======如何真正关闭ClientSocket控件与服务器连接的端口!======

highbury 2004-01-07 06:37:43
现有一TClientSocket控件,与服务器保持一个长连接。
介面上有一个“启动”按钮,“停止”按钮。分别是开启这个与服务器的长连接和关闭该长连接。

我在“停止”按钮的事件里是这样关闭长连接的:ClientSocket.close;
当我使用 netstat -na 命令观看系统端口情况时,发现有一个本地断口开者,只是它的状态为 Time_Wait. 当我点好多次“启动”和“停止”按钮后,发现有一堆的本地断口,状态都是Time_Wait.

当过去一段时间后,再次查看这些本地断口的状态,发现状态变成了Fin_Wait_2

再过去一段时间后,再次查这些本地断口的状态,发现这些断口已经全部消失,就是已经 被系统关闭了。

请教一下用ClientSocket.close方法不能真正关闭本地断口吗?
...全文
292 22 打赏 收藏 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
Maxwell 2004-01-31
  • 打赏
  • 举报
回复
断开连接不是可以先等待对方把数据全传送完之后再断开吗,我忘记应该怎么写了,手头没有资料。那样不知道行不行。
一个端口断开要等待两倍超时时间的,只是不知道数据传输完了还用不用等。

我用TTcpServer 监听端口的时候也有类似的毛病,但是换成TServerSocket 就能立刻断开。
http://expert.csdn.net/Expert/TopicView1.asp?id=2679010

你也可以考虑换个控件试试。
mingtom 2004-01-30
  • 打赏
  • 举报
回复
to: chard()
没有办法解决了吗?
chard 2004-01-30
  • 打赏
  • 举报
回复
tcp/ip本来就是这样,当你在关闭一个socket连接时用netstat -na查看就是Time_Wait.它需要过一段时间后才会自动释放,你可以写一个连接sybase的数据库程序,然后用netstat查看端口情况,其结果也是一样
mentalpatient 2004-01-29
  • 打赏
  • 举报
回复
把你的代码贴出来
mingtom 2004-01-29
  • 打赏
  • 举报
回复
to : mentalpatient(按时吃药)
今天试了一下。
我用的是 indy 的 TIdTCPClient
IdTCPClient1.Socket 里面好象没有Disconnect 这一项
Socket.Close 好象也不行
Socket.Destroy 也不行
怎么办呢?
mingtom 2004-01-29
  • 打赏
  • 举报
回复
就是在点际关闭的时候
IdTCPClient1.DisConnect;
IdTCPClient1.Free;
mingtom 2004-01-21
  • 打赏
  • 举报
回复
新年快乐!!
我初八上班后试一下。
如果可行,我决不食言。
谢谢大家!
mentalpatient 2004-01-20
  • 打赏
  • 举报
回复
呵呵 我好象解决了。

在关闭时加一句话ClientSocket1.Socket.Disconnect(ClientSocket1.Socket.SocketHandle);
这样就能把端口释放了。

别忘了给分!
yoyoung 2004-01-19
  • 打赏
  • 举报
回复
试一下Socket.close来关闭
mingtom 2004-01-18
  • 打赏
  • 举报
回复
up
mingtom 2004-01-17
  • 打赏
  • 举报
回复
我今天作过试验了:

若服务器主动关闭,则客户端相应端口的占用会被马上释放。
反之,若客户端主动关闭,则客户端相应端口的占用不会被马上释放,相应端口的状态为“TIME_WAIT”。

总不能要求人家服务器端在客户端关闭连接后也关闭一下连接吧。

若解决此问题,我另外开帖送分-100 决不食言。
本人有的是分。
koy0755 2004-01-17
  • 打赏
  • 举报
回复
我也遇到这种问题Tidtcpclient设置了boundpost,退出程序后端口不会立即释放。
mingtom 2004-01-16
  • 打赏
  • 举报
回复
TIdTCPClient.Free ;

好象这样也不行哎!
zheng33 2004-01-14
  • 打赏
  • 举报
回复
释放WINSOCKEY的创建。
mingtom 2004-01-14
  • 打赏
  • 举报
回复
to: highbury()
抱歉,我暂时也找不到解决的办法。
看来只有另外分配端口了!
mentalpatient 2004-01-12
  • 打赏
  • 举报
回复
好象不能,我也见过这样的问题。

每次ClientSocket1.open都会打开一个端口,状态为LISTENING。之后ClientSocket1.Close端口还在,以后每OPEN一次都会再打开一个端口。
highbury 2004-01-10
  • 打赏
  • 举报
回复
mingtom():
有没有什么 解决方法?
急啊,老没人回答
mingtom 2004-01-09
  • 打赏
  • 举报
回复
up
在 TIdTCPClient 里面也有这个问题。
highbury 2004-01-08
  • 打赏
  • 举报
回复
有人研究过 吗?
help!!
highbury 2004-01-08
  • 打赏
  • 举报
回复
再顶啊
加载更多回复(2)
内容概要:本文介绍了一个基于Python的滚动轴承故障诊断项目,采用迁移学习(TL)结合SqueezeNet网络(TL-SqueezeNet)实现智能诊断。项目通过将一维振动信号经短时傅里叶变换转化为二维时频图,输入改进的SqueezeNet模型进行训练与分类。模型利用预训练权重冻结骨干网络、替换分类头,并结合类别权重、数据增强、标签平滑和分阶段微调策略,提升小样本与类别不均衡条件下的诊断性能。系统实现了从原始信号读取、滑动窗口分段、时频图生成、数据集划分、模型训练评估到单文件推理的全流程自动化,支持CSV、TXT、NPY等多种格式,输出包括准确率、宏平均F1、混淆矩阵及各类别概率,增强了诊断结果的可解释性与工程实用性。; 适合人群:具备Python编程基础,熟悉PyTorch框架,从事工业设备故障诊断、信号处理或深度学习应用研究的研发人员、研究生及工程师(工作或研究年限1-3年)。; 使用场景及目标:①解决滚动轴承故障数据小样本、类别不均衡、工况多变导致的传统方法泛化能力差的问题;②构建轻量化、高精度、可部署于边缘设备的智能诊断模型;③实现端到端的自动化诊断流程,提升工业运维智能化水平;④通过可视化评估指标辅助人工复核与模型优化。; 阅读建议:此资源以实际项目代码为核心,强调工程实现与算法优化的结合,建议读者结合文档中的代码示例搭建环境运行,重点理解数据预处理逻辑、模型迁移策略与评估机制的设计思路,并尝试在自有数据上进行迁移与调优实践。
本资源提供重庆市2026年水系(线+面)空间分布数据,系统整理重庆市范围内河流、沟渠、水道、湖泊、水库等水系要素,包含可编辑MXD工程文件、标准Shapefile矢量文件以及标准成图TIF文件,可用于水文地理、水资源管理、生态环境及自然灾害等相关研究。 原始数据来源是Open Street Map(OSM),水系类型包括江、河、溪、水域、水库、河岸、河堤等等,可在shp文件属性表中自行查阅。 数据包含水系线和水系面两类矢量数据。线状水系用于表达河流、沟渠及其他线性水体的空间位置和形态;面状水系用于表达湖泊、水库及其他具有一定面积的水体分布,可较直观地反映重庆市河湖水系的空间格局。 标准Shapefile文件支持空间查询、属性编辑、长度与面积统计、河网密度分析、缓冲区分析及专题制图,可与行政区划、DEM、土地利用、人口、降水及灾害数据进行空间叠加。资源配套提供可编辑MXD工程文件,完成水系图层组织、符号配置、标注及地图版式设置,便于用户直接在ArcGIS中编辑和制图。 该数据可广泛应用于重庆市水资源管理、河湖空间格局研究、洪涝灾害分析、生态环境评价、流域研究及国土空间规划等领域,可为区域水系特征分析及相关GIS空间研究提供基础数据支撑。 同时提供标准成图TIF文件,可直接用于科研论文、项目报告、专题地图及教学展示。整体数据具有线面数据配套、空间分布直观、格式完整、GIS兼容性好等特点,可满足重庆市水系空间分析、专题制图及科研应用需求。
源码下载地址: https://pan.quark.cn/s/7c5ebe7e1146 专门用于处理和播放监控系统生成的MP4视频文件的软件工具即为监控专用MP4文件播放器。此类播放器通常配备特殊功能,能够解析和播放那些因编码格式特殊或包含特定行业标准而在常规多媒体播放器上无法打开的MP4文件。作为常见类型,H264文件播放器得到了广泛应用,因为H264(也称为AVC,即Advanced Video Coding)是当前监控录像最常用的视频编码格式之一,其高效的压缩比率能在维持良好画质的条件下减小文件体积。 监控视频的编码方法通常与一般娱乐视频存在差异,可能包含更复杂的元数据或专有的加密技术,旨在保障数据的安全性和隐私性。因此,标准MP4播放器可能因无法识别这些特征而无法正常播放。针对这些特点进行优化的监控专用MP4文件播放器,则能够确保正确解码和播放相关文件。 描述中提及的"各种录像文件"可能涵盖以下几种情形: 1. 非标准分辨率:监控摄像头或许会采用非典型的分辨率,如320x240、720x480等,这些在标准播放器中可能无法得到支持。 2. 特殊帧率:监控录像或许会采用非常规的帧率,例如1fps、5fps等,这与一般视频的24fps、30fps有所不同。 3. 非线性时间轴:部分监控系统可能会进行时间戳重置,导致视频时间线呈现非线性,普通播放器可能无法正确处理。 4. 加密保护:为防止未授权的访问,监控录像可能被加密,需要特定的播放器才能进行解密。 5. 多通道音频:部分监控设备或许会包含多个音频通道,例如同时记录多路音频,普通播放器可能无法同时播放。 在提供的压缩包文件中,"下载说明.htm"或许包含了软件的安装指南、使用教程或注意事项,对于用户而言至关...

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧