コード例 #1
0
ファイル: SocketMaid.cs プロジェクト: lulzzz/Kakegurui
        /// <summary>
        /// 添加连接地址
        /// </summary>
        /// <param name="handler">处理实例</param>
        /// <param name="endPoint">连接地址</param>
        public SocketChannel AddConnectEndPoint(ISocketHandler handler, IPEndPoint endPoint)
        {
            SocketChannel channel = new SocketChannel(null, SocketType.Connect, null, endPoint, handler);

            channel.Connected += ConnectedEventHandler;
            return(channel);
        }
コード例 #2
0
 public createMatchViewModel(IEventAggregator events, ISocketHandler socketHandler, IUserData userdata)
 {
     _events        = events;
     _socketHandler = socketHandler;
     this.userdata  = userdata;
     this._socketHandler.onCreateMatch();
 }
コード例 #3
0
 /// <summary>
 /// 实例化TCP监听者。
 /// </summary>
 public TCPListener(ISocketHandler handler)
 {
     clients           = new HashSet <UserToken>();
     IsStarted         = false;
     Handler           = handler;
     IsUseAuthenticate = false;
 }
コード例 #4
0
        public FenetreDessinViewModel(IEventAggregator events, ISocketHandler socketHandler, InkCanvas canvas)
        {
            _canvas = canvas;
            // SendPoint = new RelayCommand<object>(sendStrokeAction);
            this._socketHandler = socketHandler;
            _events             = events;
            // On écoute pour des changements sur le modèle. Lorsqu'il y en a, EditeurProprieteModifiee est appelée.
            editeur.PropertyChanged += new PropertyChangedEventHandler(EditeurProprieteModifiee);

            // On initialise les attributs de dessin avec les valeurs de départ du modèle.
            AttributsDessin       = new DrawingAttributes();
            AttributsDessin.Color = (System.Windows.Media.Color)ColorConverter.ConvertFromString(editeur.CouleurSelectionnee);
            AjusterPointe();

            Traits = editeur.traits;


            // Pour les commandes suivantes, il est toujours possible des les activer.
            // Donc, aucune vérification de type Peut"Action" à faire.
            ChoisirPointe = new RelayCommand <string>(editeur.ChoisirPointe);
            ChoisirOutil  = new RelayCommand <string>(editeur.ChoisirOutil);
            //_socketHandler.getStrokes(Canvas);
            this.strokes = new Dictionary <Stroke, int>();
            this._socketHandler.onDrawing(this.Traits, this.strokes);
            this._socketHandler.socket.Emit("connect_free_draw");
        }
コード例 #5
0
ファイル: MainMenuViewModel.cs プロジェクト: nmhjoyal/LOG3900
 public MainMenuViewModel(IEventAggregator events, ISocketHandler socketHandler, IUserData userdata)
 {
     _events        = events;
     _socketHandler = socketHandler;
     _userdata      = userdata;
     fillAvatars();
 }
コード例 #6
0
 /// <summary>
 /// 实例化TCP客户端。
 /// </summary>
 public ClientBase(Socket socket, ISocketHandler socketHandler)
 {
     Socket         = socket ?? throw new ArgumentNullException("socket");
     socket.NoDelay = true;
     Handler        = socketHandler ?? throw new ArgumentNullException("socketHandler");
     data           = new Dictionary <string, object>();
 }
コード例 #7
0
ファイル: Server.cs プロジェクト: AliaksandrLiashevich/Chat
        /// <summary>
        /// Constructor initializes all internal instances, connect all external dependencies
        /// </summary>
        /// <param name="_socketHandler">Instance of SocketHabdker type</param>
        /// <param name="_storage"></param>
        /// <param name="_storeMessageSender"></param>
        /// <param name="_lostConnectionSender"></param>
        /// <param name="_serverStopHandler"></param>
        public Server(ISocketHandler _socketHandler, IStorage _storage, IStoreMessageSender _storeMessageSender,
                      ILostConnectionSender _lostConnectionSender, IServerStopHandler _serverStopHandler)
        {
            IPHostEntry ipHost     = Dns.GetHostEntry("localhost");
            IPAddress   ipAddr     = ipHost.AddressList[0];
            IPEndPoint  ipEndPoint = new IPEndPoint(ipAddr, 11000);

            listener = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
            listener.Bind(ipEndPoint);
            listener.Listen(10);

            storage              = _storage;
            socketHandler        = _socketHandler;
            storeMessageSender   = _storeMessageSender;
            lostConnectionSender = _lostConnectionSender;
            serverStopHandler    = _serverStopHandler;

            serverStopHandler.Broadcast    = BroadcastMessage;
            lostConnectionSender.Broadcast = BroadcastMessage;

            stub = new ClientInfo(currentId++, null, null);

            serverStopHandler.Stub    = stub;
            lostConnectionSender.Stub = stub;

            bufferSize = listener.ReceiveBufferSize;
        }
コード例 #8
0
ファイル: topMenuViewModel.cs プロジェクト: nmhjoyal/LOG3900
 public topMenuViewModel(IEventAggregator events, ISocketHandler socketHandler, IUserData userdata)
 {
     _userData      = userdata;
     _events        = events;
     _socketHandler = socketHandler;
     _events.Subscribe(this);
 }
コード例 #9
0
 public LoginViewModel(IUserData userdata, IEventAggregator events, ISocketHandler socketHandler)
 {
     _userdata      = userdata;
     _socketHandler = socketHandler;
     _events        = events;
     _events.Subscribe(this);
 }
コード例 #10
0
ファイル: SocketConnection.cs プロジェクト: weinre/nettunnel
 public SocketConnection(Socket socket, ISocketHandler handler)
 {
     buffer            = new NetBuffer();
     this.buffsize     = 2048;
     this.socket       = socket;
     this.handler      = handler;
     this.processCount = 0;
 }
コード例 #11
0
        public async Task Can_receive_invalid_data_asset_id()
        {
            ISocketHandler    handler       = Substitute.For <ISocketHandler>();
            INdmDataPublisher dataPublisher = Substitute.For <INdmDataPublisher>();

            NdmWebSocketsClient client = new(nameof(NdmWebSocketsClientTests), handler, dataPublisher, _serializer);
            await client.ProcessAsync(Encoding.ASCII.GetBytes("a|b|c"));
        }
コード例 #12
0
ファイル: TcpClient.cs プロジェクト: Porphyah/StrikeOne
 /// <summary>
 /// 实例化TCP客户端。
 /// </summary>
 public TcpClient()
 {
     Socket       = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     Handler      = new SocketHandler();
     Data         = new Dictionary <string, object>();
     DataSender   = new SocketDataSender(this);
     DataReceiver = new SocketDataReceiver(this);
 }
コード例 #13
0
        public async Task Can_receive_data_without_asset_id()
        {
            ISocketHandler    handler       = Substitute.For <ISocketHandler>();
            INdmDataPublisher dataPublisher = Substitute.For <INdmDataPublisher>();

            NdmWebSocketsClient client = new(nameof(NdmWebSocketsClientTests), handler, dataPublisher, _serializer);
            await client.ProcessAsync(Encoding.ASCII.GetBytes("|b|c"));

            dataPublisher.DidNotReceiveWithAnyArgs().Publish(null);
        }
コード例 #14
0
        public async Task Can_receive_data()
        {
            ISocketHandler    handler       = Substitute.For <ISocketHandler>();
            INdmDataPublisher dataPublisher = Substitute.For <INdmDataPublisher>();

            NdmWebSocketsClient client = new(nameof(NdmWebSocketsClientTests), handler, dataPublisher, _serializer);
            await client.ProcessAsync(Encoding.ASCII.GetBytes($"{Keccak.Zero.Bytes.ToHexString(false)}|b|c"));

            dataPublisher.Received().Publish(Arg.Is <DataAssetData>(dad => dad.Data == "c" && dad.AssetId == Keccak.Zero));
        }
コード例 #15
0
        public async Task Can_receive_null_or_empty_data()
        {
            ISocketHandler    handler       = Substitute.For <ISocketHandler>();
            INdmDataPublisher dataPublisher = Substitute.For <INdmDataPublisher>();

            NdmWebSocketsClient client = new(nameof(NdmWebSocketsClientTests), handler, dataPublisher, _serializer);
            await client.ProcessAsync(null);

            await client.ProcessAsync(Array.Empty <byte>());
        }
コード例 #16
0
ファイル: TcpServer.cs プロジェクト: simoneb/ak-f1-timing
        /// <summary>
        /// Initialises a new instance of the <see cref="AK.F1.Timing.Server.TcpServer"/> class.
        /// </summary>
        /// <param name="endpoint">The remote end point to listen on.</param>
        /// <param name="handler">The client connection handler.</param>
        /// <param name="backlog">The accept connection backlog.</param>
        /// <exception cref="System.ArgumentNullException">
        /// Thrown when <paramref name="endpoint"/> or <paramref name="handler"/> is <see langword="null"/>.
        /// </exception>
        /// <exception cref="System.ArgumentOutOfRangeException">
        /// Thrown when <paramref name="backlog"/> is not positive.
        /// </exception>
        public TcpServer(IPEndPoint endpoint, ISocketHandler handler, int backlog = 50)
        {
            Guard.NotNull(endpoint, "endpoint");
            Guard.NotNull(handler, "handler");
            Guard.InRange(backlog > 0, "backlog");

            _endpoint = endpoint;
            _handler = handler;
            _connectionBacklog = backlog;
        }
コード例 #17
0
ファイル: SocketMaid.cs プロジェクト: lulzzz/Kakegurui
        /// <summary>
        /// 添加tcp监听端口
        /// </summary>
        /// <param name="handler">处理实例</param>
        /// <param name="port">监听端口</param>
        public SocketChannel AddListenEndPoint(ISocketHandler handler, int port)
        {
            SocketChannel channel = new SocketChannel(null, SocketType.Listen, new IPEndPoint(IPAddress.Any, port), null, handler);

            if (channel.Socket != null)
            {
                channel.Accepted += AcceptedEventHandler;
                _sockets[channel.Socket.Handle.ToInt32()] = channel;
            }
            return(channel);
        }
コード例 #18
0
        public LeaderboardViewModel(IEventAggregator events, ISocketHandler socketHandler)
        {
            _soloPos     = new BindableCollection <Ranking>();
            _vs1Pos      = new BindableCollection <Ranking>();
            _inversedPos = new BindableCollection <Ranking>();
            _coopPos     = new BindableCollection <Ranking>();
            _solo2Pos    = new BindableCollection <Ranking>();

            _socketHandler = socketHandler;
            _events        = events;
        }
コード例 #19
0
ファイル: SocketMaid.cs プロジェクト: lulzzz/Kakegurui
        /// <summary>
        /// 添加udp绑定端口
        /// </summary>
        /// <param name="handler">处理实例</param>
        /// <returns>udp客户端套接字</returns>
        public SocketChannel AddUdpClient(ISocketHandler handler)
        {
            IPEndPoint    localEndPoint = new IPEndPoint(IPAddress.Any, 0);
            SocketChannel channel       = new SocketChannel(null, SocketType.Udp_Client, localEndPoint, null, handler);

            if (channel.Socket != null)
            {
                _sockets[channel.Socket.Handle.ToInt32()] = channel;
            }
            return(channel);
        }
コード例 #20
0
        public void Forwards_messages_to_ws_handler()
        {
            ISocketHandler    _handler      = Substitute.For <ISocketHandler>();
            INdmDataPublisher dataPublisher = Substitute.For <INdmDataPublisher>();

            NdmWebSocketsClient client  = new(nameof(NdmWebSocketsClientTests), _handler, dataPublisher, _serializer);
            SocketsMessage      message = new("type", nameof(NdmWebSocketsClientTests), "data");

            client.SendAsync(message);

            _handler.Received().SendRawAsync(Arg.Any <ArraySegment <byte> >());
        }
コード例 #21
0
ファイル: ShellViewModel.cs プロジェクト: nmhjoyal/LOG3900
 public ShellViewModel(IWindowManager windowManager, IEventAggregator events, SimpleContainer container, ISocketHandler socketHandler)
 {
     _windowManager = windowManager;
     _container     = container;
     _events        = events;
     _events.Subscribe(this);
     _firstVM            = _container.GetInstance <LoginViewModel>();
     _secondVM           = _container.GetInstance <EmptyViewModel>();
     _topmenuVM          = _container.GetInstance <topMenuViewModel>();
     this._socketHandler = socketHandler;
     _countHelper        = 0;
 }
コード例 #22
0
ファイル: NewUserViewModel.cs プロジェクト: nmhjoyal/LOG3900
 public NewUserViewModel(IUserData userdata, IEventAggregator events, ISocketHandler socketHandler)
 {
     _userData = userdata;
     _events   = events;
     _events.Subscribe(this);
     _socketHandler = socketHandler;
     _avatars       = new BindableCollection <Avatar>();
     fillAvatars();
     _selectedAvatarIndex = 0;
     nbAvatars            = avatars.Count();
     //_events.PublishOnUIThread(new signUpEvent());
 }
コード例 #23
0
        public ClassementViewModel(IEventAggregator events, ISocketHandler socketHandler, IUserData userdata)
        {
            // getFakeScores();

            _socketHandler = socketHandler;
            _events        = events;
            this.userdata  = userdata;
            this.ranking   = new Ranking("", 0, 0);
            this.rankings  = new BindableCollection <Ranking>();
            this.mode      = 0;
            this.update(this.mode);
        }
コード例 #24
0
        public partieJeuViewModel(IEventAggregator events, ISocketHandler socketHandler, IUserData userdata)
        {
            now = DateTime.Now.ToString();
            editeur.PropertyChanged += new PropertyChangedEventHandler(EditeurProprieteModifiee);
            _events = events;
            _events.Unsubscribe(this);
            _events.Subscribe(this);
            _socketHandler       = socketHandler;
            _userData            = userdata;
            messages             = userdata.messages;
            _guessFeedBackSource = "";
            _guessFeedBackText   = "";
            _winnerMessage       = "";
            _timer       = new DispatcherTimer();
            _wordChoices = new BindableCollection <dynamic>();
            _turnScores  = new BindableCollection <dynamic>();
            _matchScores = new BindableCollection <dynamic>();
            this.canDraw = false;
            // _roundDuration = 30;
            this.Traits        = editeur.traits;
            this.strokes       = new Dictionary <Stroke, int>();
            _timerContent      = 0;
            _selectWordCommand = new selectWordCommand(events);
            // fillAvatars();
            startTimer();
            _timer.Stop();
            /* ----------------------------------- Drawing editor declarations -----------------------------------------------*/
            // On écoute pour des changements sur le modèle. Lorsqu'il y en a, EditeurProprieteModifiee est appelée.
            editeur.PropertyChanged += new PropertyChangedEventHandler(EditeurProprieteModifiee);

            // On initialise les attributs de dessin avec les valeurs de départ du modèle.
            AttributsDessin       = new DrawingAttributes();
            AttributsDessin.Color = (System.Windows.Media.Color)ColorConverter.ConvertFromString(editeur.CouleurSelectionnee);
            AjusterPointe();

            Traits       = editeur.traits;
            this.strokes = new Dictionary <Stroke, int>();

            // Pour les commandes suivantes, il est toujours possible des les activer.
            // Donc, aucune vérification de type Peut"Action" à faire.
            ChoisirPointe = new RelayCommand <string>(editeur.ChoisirPointe);
            ChoisirOutil  = new RelayCommand <string>(editeur.ChoisirOutil);

            this.guessesLeft = new GuessesLeft(0, this._userData.matchMode == Models.MatchMode.sprintSolo || this._userData.matchMode == Models.MatchMode.sprintCoop);
            this.HintEnabled = false;
            this._socketHandler.onDrawing(this.Traits, this.strokes);
            this.startTurn = new StartTurn("", 0);
            this.endTurn   = new EndTurn(0, new List <string>(), "", new BindableCollection <Player>());
            this._socketHandler.offWaitingRoom();
            this._socketHandler.onMatch(this.startTurn, this.endTurn, this.guessesLeft);
            _countHelper = 0;
        }
コード例 #25
0
 /// <summary>
 /// 实例化TCP客户端。
 /// </summary>
 public SocketBase(Socket socket, ISocketHandler socketHandler)
 {
     if (socket == null)
     {
         throw new ArgumentNullException("socket");
     }
     if (socketHandler == null)
     {
         throw new ArgumentNullException("socketHandler");
     }
     Socket  = socket;
     Handler = socketHandler;
 }
コード例 #26
0
ファイル: SocketManager.cs プロジェクト: goodGsger/EraPro
        /// <summary>
        /// 注册Socket处理器
        /// </summary>
        /// <param name="id"></param>
        /// <param name="socketHandler"></param>
        /// <returns></returns>
        public SocketClient RegisterSocket(string id, ISocketHandler socketHandler)
        {
            SocketClient socketClient;

            if (_socketClientDict.TryGetValue(id, out socketClient))
            {
                App.logManager.Warn("SocketManager.RegisterSocket Warn:Socket \"" + id + "\" has already registered!");
                socketClient.SocketHandler = socketHandler;
                return(socketClient);
            }
            socketClient = _socketClientDict[id] = new SocketClient(socketHandler);
            return(socketClient);
        }
コード例 #27
0
 public ChoseGameViewModel(IEventAggregator events, ISocketHandler socketHandler, IUserData userdata)
 {
     _events     = events;
     _addClicked = false;
     _events.Subscribe(this);
     this.userdata        = userdata;
     _socketHandler       = socketHandler;
     this.clicked         = false;
     this.index           = 0;
     this.filteredMatches = new BindableCollection <Match>();
     this.matches         = new BindableCollection <Match>();
     this._socketHandler.onLobby(this.matches);
     this._socketHandler.socket.Emit("get_matches");
 }
コード例 #28
0
ファイル: profileViewModel.cs プロジェクト: nmhjoyal/LOG3900
 public profileViewModel(IUserData userdata, IEventAggregator events, ISocketHandler socketHandler)
 {
     _userData = userdata;
     _events   = events;
     _events.Subscribe(this);
     _socketHandler   = socketHandler;
     this.statsClient = JsonConvert.DeserializeObject <StatsClient>(this._socketHandler.TestGETWebRequest("/profile/stats/" + this._userData.userName).ToString());
     _avatars         = new BindableCollection <Avatar>();
     fillAvatars();
     nbAvatars            = _avatars.Count();
     _selectedAvatarIndex = 0;
     _initialPP           = JsonConvert.DeserializeObject <PrivateProfile>(socketHandler.TestGETWebRequest("/profile/private/" + userdata.userName).ToString());
     _newlPP = new PrivateProfile(_initialPP.firstname, _initialPP.firstname,
                                  _initialPP.lastname, _initialPP.password, _initialPP.avatar);
 }
コード例 #29
0
        /// <summary>
        /// 实例化SocketBase
        /// </summary>
        /// <param name="socket">Socket</param>
        /// <param name="handler">Hander</param>
        public SocketBase(Socket socket, ISocketHandler handler)
        {
            if (socket == null)
            {
                throw new ArgumentNullException("socket");
            }
            if (handler == null)
            {
                throw new ArgumentNullException("handler");
            }

            Socket         = socket;
            Socket.NoDelay = true;
            Hander         = handler;
        }
コード例 #30
0
 /// <summary>
 /// 实例化TCP客户端。
 /// </summary>
 public SocketBase(Socket socket, ISocketHandler socketHandler)
 {
     if (socket == null)
     {
         throw new ArgumentNullException("socket");
     }
     if (socketHandler == null)
     {
         throw new ArgumentNullException("socketHandler");
     }
     Socket         = socket;
     socket.NoDelay = true;
     Handler        = socketHandler;
     data           = new Dictionary <string, object>();
 }
コード例 #31
0
 public WaitingRoomViewModel(IEventAggregator events, ISocketHandler socketHandler, IUserData userdata)
 {
     _events = events;
     _events.Subscribe(this);
     _socketHandler         = socketHandler;
     _userData              = userdata;
     userdata.messages      = new BindableCollection <Models.Message>(userdata.currentGameRoom.messages);
     userdata.currentRoomId = userdata.matchId;
     _events.PublishOnUIThread(new refreshMessagesEvent(userdata.messages, userdata.currentRoomId));
     this._messages = userdata.messages;
     this.players   = new BindableCollection <Player>();
     this._socketHandler.offLobby();
     this._socketHandler.offCreateMatch();
     this._socketHandler.onWaitingRoom(this.players);
     this._socketHandler.socket.Emit("get_players", this._userData.matchId);
 }
コード例 #32
0
ファイル: TcpServer.cs プロジェクト: simoneb/ak-f1-timing
 private void DisposeOfHandler()
 {
     DisposeOf(_handler);
     _handler = null;
 }