fudgets-0.18.3: hsrc/io/Socketio.hs
module Socketio where
import Fudget
import FudgetIO
import FRequest
import Srequest
--import Message(Message(..))
import NullF
import Sockets
import Utils(loop)
--import Xtypes
import DialogueIO hiding (IOError)
transmitterF' s =
loop $ \l -> getF $ \str ->
if null str
then putHigh () nullF
else sIOsucc (WriteSocket s str) l
receiverF' s =
select [SocketDe s] $
loop $ \l ->
getMessageFu $ \e ->
case e of
Low (DResp (AsyncInput (_, SocketRead str))) ->
if null str
then closeDown
else putF str l
High _ -> closeDown
where
closeDown =
select [] $
putHigh "" $
sIOsucc (CloseSocket s) $
nullF