Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
30
Task/Echo-server/F-Sharp/echo-server.fs
Normal file
30
Task/Echo-server/F-Sharp/echo-server.fs
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
open System.IO
|
||||
open System.Net
|
||||
open System.Net.Sockets
|
||||
|
||||
let service (client:TcpClient) =
|
||||
use stream = client.GetStream()
|
||||
use out = new StreamWriter(stream, AutoFlush = true)
|
||||
use inp = new StreamReader(stream)
|
||||
while not inp.EndOfStream do
|
||||
match inp.ReadLine() with
|
||||
| line -> printfn "< %s" line
|
||||
out.WriteLine(line)
|
||||
printfn "closed %A" client.Client.RemoteEndPoint
|
||||
client.Close |> ignore
|
||||
|
||||
let EchoService =
|
||||
let socket = new TcpListener(IPAddress.Loopback, 12321)
|
||||
do socket.Start()
|
||||
printfn "echo service listening on %A" socket.Server.LocalEndPoint
|
||||
while true do
|
||||
let client = socket.AcceptTcpClient()
|
||||
printfn "connect from %A" client.Client.RemoteEndPoint
|
||||
let job = async {
|
||||
use c = client in try service client with _ -> () }
|
||||
Async.Start job
|
||||
|
||||
[<EntryPoint>]
|
||||
let main _ =
|
||||
EchoService
|
||||
0
|
||||
Loading…
Add table
Add a link
Reference in a new issue