public void ShouldAddActiveClients() { const string thumbprint = "123"; var manager = new TcpClientManager(); manager.AddActiveClient(thumbprint, new TcpClient()); manager.GetActiveClients(thumbprint).Should().HaveCount(1); }
public void ShouldDisconnect() { const string thumbprint = "123"; var manager = new TcpClientManager(); manager.AddActiveClient(thumbprint, new TcpClient()); manager.Disconnect(thumbprint); manager.GetActiveClients(thumbprint).Should().BeEmpty(); }
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); }
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(); }
private void Start() { if (!Mock) { _wandPosThread = new Thread(new ThreadStart(ReceiveWandPos)); _wandPosThread.IsBackground = true; _wandPosThread.Start(); } _tcpClient = GetComponent <TcpClientManager>(); _tcpClient.setupSocket(); }
/// <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); // ▲▲▲ 業務処理 ▲▲▲ }