gameServer/ClientIO.hs
changeset 8454 46b59c529bb1
parent 8371 0551b5c3de9a
child 10460 8dcea9087d75
equal deleted inserted replaced
8453:06541556df53 8454:46b59c529bb1
    35         receiveWithBufferLoop recvBuf = do
    35         receiveWithBufferLoop recvBuf = do
    36             recvBS <- recv sock 4096
    36             recvBS <- recv sock 4096
    37             unless (B.null recvBS) $ do
    37             unless (B.null recvBS) $ do
    38                 let (packets, newrecvBuf) = bs2Packets $ B.append recvBuf recvBS
    38                 let (packets, newrecvBuf) = bs2Packets $ B.append recvBuf recvBS
    39                 forM_ packets sendPacket
    39                 forM_ packets sendPacket
    40                 receiveWithBufferLoop newrecvBuf
    40                 receiveWithBufferLoop $ B.copy newrecvBuf
    41 
    41 
    42         sendPacket packet = writeChan chan $ ClientMessage (ci, packet)
    42         sendPacket packet = writeChan chan $ ClientMessage (ci, packet)
    43 
    43 
    44 clientRecvLoop :: Socket -> Chan CoreMessage -> Chan [B.ByteString] -> ClientIndex -> (forall a. IO a -> IO a) -> IO ()
    44 clientRecvLoop :: Socket -> Chan CoreMessage -> Chan [B.ByteString] -> ClientIndex -> (forall a. IO a -> IO a) -> IO ()
    45 clientRecvLoop s chan clChan ci restore =
    45 clientRecvLoop s chan clChan ci restore =