Example #1
0
        public void ShouldAddActiveClients()
        {
            const string thumbprint = "123";
            var          manager    = new TcpClientManager();

            manager.AddActiveClient(thumbprint, new TcpClient());

            manager.GetActiveClients(thumbprint).Should().HaveCount(1);
        }
Example #2
0
        public void ShouldDisconnect()
        {
            const string thumbprint = "123";
            var          manager    = new TcpClientManager();

            manager.AddActiveClient(thumbprint, new TcpClient());
            manager.Disconnect(thumbprint);

            manager.GetActiveClients(thumbprint).Should().BeEmpty();
        }
Example #3
0
        public void AddShouldRemoveStaleClients()
        {
            const string thumbprint = "123";
            var          manager    = new TcpClientManager();

            manager.AddActiveClient(thumbprint, new TcpClient()); // this client is stale
            manager.AddActiveClient(thumbprint, new TcpClient());

            manager.GetActiveClients(thumbprint).Should().HaveCount(1);
        }
Example #4
0
        public void ShouldRemoveClient()
        {
            const string thumbprint = "123";
            var          manager    = new TcpClientManager();
            var          client     = new TcpClient();

            manager.AddActiveClient(thumbprint, client);
            manager.RemoveClient(client);

            manager.GetActiveClients(thumbprint).Should().BeEmpty();
        }
Example #5
0
    private void Start()
    {
        if (!Mock)
        {
            _wandPosThread = new Thread(new ThreadStart(ReceiveWandPos));
            _wandPosThread.IsBackground = true;
            _wandPosThread.Start();
        }

        _tcpClient = GetComponent <TcpClientManager>();
        _tcpClient.setupSocket();
    }
Example #6
0
        /// <summary>
        /// Connect
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected override void ButtonF1_Click(object sender, EventArgs e)
        {
            Logger.WriteLine(MethodBase.GetCurrentMethod().Name);

            base.ButtonF1_Click(sender, e);
            // ▼▼▼ 業務処理 ▼▼▼

            if (TcpClientUtil != null)
            {
                // 既に接続している場合、再接続前に破棄する
                TcpClientUtil.Dispose();
            }

            // 接続
            string ip = tboxIP.Text;

            int.TryParse(tboxPort.Text, out int port);

            try
            {
                TcpClientUtil = new TcpClientManager(ip, port);

                listViewLog.Items.Add($"接続しました。{TcpClientUtil.GetClientIpAndPort()}->{TcpClientUtil.GetServerIpAndPort()}");

                // 名前を送信
                string            name = tboxName.Text;
                TcpMessageUtility mgr  = new TcpMessageUtility(TcpMessageUtility.HeaderConnect, name, TcpMessageUtility.TargetAll, name);
                TcpClientUtil.Send(mgr.GetSendMessage());
            }
            catch (SocketException ex)
            {
                Debug.WriteLine(ex.ToString());
                listViewLog.Items.Add(ex.Message);
                return;
            }

            // 読み込みループ開始
            // Task停止用のトークン発行
            ReadCancelTokenSource = new CancellationTokenSource();
            CancellationToken cToken = ReadCancelTokenSource.Token;

            readLoopTask = ReadLoop(cToken);
            readLoopTask.ConfigureAwait(false);

            // ボタンの有効無効を設定
            SetControlEnabled(ActionMode.Connect);
            // ▲▲▲ 業務処理 ▲▲▲
        }