コード例 #1
0
ファイル: AWSocket.cs プロジェクト: vvnurmi/assaultwing
 /// <param name="socket">A socket to the remote host. This <see cref="AWSocket"/>
 /// instance owns the socket and will dispose of it.</param>
 /// <param name="messageHandler">Delegate that handles received message data.
 /// If null then no data will be received. The delegate is called in a background thread.</param>
 protected AWSocket(Socket socket, MessageHandler messageHandler)
 {
     if (socket == null) throw new ArgumentNullException("socket", "Null socket argument");
     Application.ApplicationExit += ApplicationExitCallback;
     _socket = socket;
     _sendCache = new Dictionary<IPEndPoint, Tuple<SocketAsyncEventArgs, NetworkBinaryWriter>>();
     ConfigureSocket(_socket);
     _messageHandler = messageHandler;
     Errors = new ThreadSafeWrapper<Queue<string>>(new Queue<string>());
     if (messageHandler != null) StartReceiving();
 }
コード例 #2
0
ファイル: WebData.cs プロジェクト: vvnurmi/assaultwing
 public WebData(AssaultWingCore game, int updateOrder)
     : base(game, updateOrder)
 {
     LoginErrors = new ThreadSafeWrapper<Queue<string>>(new Queue<string>());
 }
コード例 #3
0
ファイル: NetworkEngine.cs プロジェクト: vvnurmi/assaultwing
 public NetworkEngine(AssaultWing game, int updateOrder)
     : base(game, updateOrder)
 {
     _game = game;
     GameClientConnections = new List<GameClientConnection>();
     _removedClientConnections = new List<GameClientConnection>();
     _udpMessagesToHandle = new ThreadSafeWrapper<List<Tuple<Message, IPEndPoint>>>(new List<Tuple<Message, IPEndPoint>>());
     _managementServerConnectionCheckTimer = new AWTimer(() => _game.GameTime.TotalRealTime, TimeSpan.FromSeconds(10)) { SkipPastIntervals = true };
     MessageHandlers = new List<MessageHandlerBase>();
     InitializeUDPSocket();
 }