Пример #1
0
 public void RemoveSession(ref SocketSession session)
 {
     lock (lockRemoveSession)
     {
         clientSessions.Remove(session);
         if (session != null)
         {
             session.Close();
             session = null;
         }
     }
 }
 private void TryGetSession()
 {
     for (int i = 0; i < 3; i++)
     {
         session = coreServer.GetSession(clientSocket);
         if (session != null)
         {
             return;
         }
         else
         {
             Thread.Sleep(100);
         }
     }
 }
Пример #3
0
 public void AcceptCallback(IAsyncResult AR)
 {
     lock (lockAccept)
     {
         try
         {
             Socket socket  = serverSocket.EndAccept(AR);
             var    session = new SocketSession(socket, configuration.BufferSize);
             clientSessions.Add(session);
             socket.BeginReceive(session.SessionStorage, 0, configuration.BufferSize, SocketFlags.None, ReceiveCallback, socket);
             serverSocket.BeginAccept(AcceptCallback, null);
         }
         catch (Exception ex) // I cannot seem to avoid this (on exit when properly closing sockets)
         {
             loggingService.WriteLog("*** ERROR ***: \n" + ex.Message, ServerLogType.ERROR);
         }
     }
 }