为什么TcpClient.Connected()在被TcpListener关闭后显示true?F#



所以我试图通过F#了解更多关于TCP的信息,当我在1秒后从侦听器端关闭连接时,它仍然显示客户端在客户端端连接。

服务器:

open System.Net
open System.Net.Sockets
open System.Threading
let tcpListener = new TcpListener(IPAddress.Parse("127.0.0.1"), 1000)
let rec listen() =
printfn "Listening..."
let tcpClient = tcpListener.AcceptTcpClient()
printfn "Connected!"
Thread.Sleep(1000)
tcpClient.Close()
printfn "Disconnected."
listen()
tcpListener.Start()
listen()

客户:

open System
open System.Net.Sockets
open System.Threading
let connect() =
let tcpClient = new TcpClient("127.0.0.1", 1000)
printfn "Connected!"
let rec loop() =
Thread.Sleep(100)
let isConnected = tcpClient.Connected
if isConnected = false then
printfn "Disconnected."
else
loop()
Console.Read() |> ignore
connect()

您似乎从未调用过loop函数,因此它从未实际检查过连接。

最新更新