Is there a better way to write named-pipes in F#?

Posted by Niran on Stack Overflow See other posts from Stack Overflow or by Niran
Published on 2010-04-23T16:10:40Z Indexed on 2010/04/23 16:13 UTC
Read the original article Hit count: 247

Filed under:
|

Hi

I am new to F#. I am trying to communicate with java from F# using named pipe. The code below works but I am not sure if there is a better way to do this (I know the infinite loop is a bad idea but this is just a proof of concept) if anyone have any idea to improve this code please post your comments.

Thanks in advance Niran

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()

© Stack Overflow or respective owner

Related posts about F#

Related posts about named-pipes