作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用TTCPBlockSocket
对于 TCP/IP 应用程序。问题是我无法确定连接何时丢失。
GetLastError
返回 0读取
返回0
但是即使应用程序已连接,我也会遇到这些值,因此我可以获取它,当 TCP/IP 连接丢失时如何通知我。
谢谢
最佳答案
我想说,你可以使用CanRead
方法,将 0 传递给其 Timeout
参数。该函数内部执行 select
函数用于套接字并在发生错误时返回 False。由于select
,仅使用此方法就足够了如果失去连接,函数将返回 SOCKET_ERROR
,并导致 CanRead
方法返回 False 作为结果。所以我认为,这样检查套接字连接是否还活着就足够了:
function IsSocketAlive(ASocket: TTCPBlockSocket): Boolean;
begin
Result := ASocket.CanRead(0);
end;
关于德尔福+突触: How to check if I am still connected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13045943/
我是一名优秀的程序员,十分优秀!