예제 #1
0
파일: Sender.cs 프로젝트: kjkrum/OnlyAModel
 private void SendNext(SocketAsyncEventArgs args)
 {
     if (_queue.TryPeek(out IMessage message))
     {
         args.SetBuffer(message.Data.ToArray());
         BeginSend(args);
     }
     else
     {
         // should be impossible
         var e = new Exception("No message to send!");
         _server.RaiseError(_session, e);
         // TODO reset lock?
     }
 }
예제 #2
0
 private void BeginReceive(Socket socket, SocketAsyncEventArgs args)
 {
     try
     {
         if (!socket.ReceiveAsync(args))
         {
             ReceiveComplete(socket, args);
         }
     }
     catch (Exception e)
     {
         _server.RaiseError(_session, e);
         args.Dispose();
     }
 }