【发布时间】:2021-04-20 07:48:06
【问题描述】:
我正在尝试使用此代码为远程 FTP 服务器创建一个简单的监视器 (在 Martin Prikryl 的大力帮助下构建)
Private Function TestFTP(ByVal target As String, ByVal time As Integer) As Object
Dim responseTime As Integer = 0
Dim answer As Boolean
Dim startTime As Integer = DateTime.Now.Millisecond
Dim endTime As Integer
Dim socket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Try
With socket
.ReceiveTimeout = time
.Ttl = 64
.SendTimeout = time
.Connect(target, 21)
.Dispose()
.Close()
End With
endTime = DateTime.Now.Millisecond
IIf(endTime - startTime < 0, responseTime = endTime + 1000, responseTime = endTime)
answer = True
Catch ex As Exception
responseTime = time
answer = False
End Try
Return {responseTime, answer}
End Function
当 FTP 服务器启动并响应时,没有问题,但当它不存在时,我会在发送异常之前将我的应用挂起约 15 秒。
套接字本身没有超时连接(仅用于发送和接收命令 - 在函数中使用)。
我试图用计时器包裹它,但没有运气, 请帮忙。
男人
【问题讨论】:
标签: vb.net sockets ftp timeout