gpt4 book ai didi

f# - 有没有更好的方法在 F# 中编写命名管道?

转载 作者:行者123 更新时间:2023-12-01 00:51:37 26 4
gpt4 key购买 nike

我是 F# 新手。我正在尝试使用命名管道从 F# 与 java 进行通信。下面的代码有效,但我不确定是否有更好的方法(我知道无限循环是个坏主意,但这只是一个概念证明)如果有人有任何改进此代码的想法,请发表您的评论.

提前致谢苏达利

open System.IO
open System.IO.Pipes
exception OuterError of string


let continueLooping = true
while continueLooping do
let pipeServer = new NamedPipeServerStream("testpipe", PipeDirection.InOut, 4)
printfn "[F#] NamedPipeServerStream thread created."

//wait for connection
printfn "[F#] Wait for a client to connect"
pipeServer.WaitForConnection()

printfn "[F#] Client connected."
try
// Stream for the request.
let sr = new StreamReader(pipeServer)
// Stream for the response.
let sw = new StreamWriter(pipeServer)
sw.AutoFlush <- true;

// Read request from the stream.
let echo = sr.ReadLine();

printfn "[F#] Request message: %s" echo

// Write response to the stream.
sw.WriteLine("[F#]: " + echo)

pipeServer.Disconnect()

with
| OuterError(str) -> printfn "[F#]ERROR: %s" str

printfn "[F#] Client Closing."
pipeServer.Close()

最佳答案

好吧,看起来没有任何东西在抛出 OuterError,所以我会删除该异常类型和未使用的处理。

我不确定您的经验水平或您正在寻找哪种类型的“更好”。你想读F# async on the server了解有关异步和避免阻塞线程的更多信息。

关于f# - 有没有更好的方法在 F# 中编写命名管道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2700137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com