// パケット送信/応答待ち private void sendPacketWaitResponse(int val) { // パケット作成 var packet = new PacketData(3); packet.SetChar(0, 'D'); packet.SetHex(1, 2, val); // パケット送信 socketS.Send(packet); // 表示更新 sendPackNum++; this.BeginInvoke((Action)(() => { textBox1.Text = sendPackNum.ToString(); })); // パケット受信 var resPacket = socketR.WaitPacket(500); // 応答はあったか? if (resPacket != null) { // ACK応答か? if (resPacket.Data[0] == AsciiCode.ACK) { recvAckNum++; } else { recvNakNum++; } } else { recvNoneNum++; } // 表示更新 this.BeginInvoke((Action)(() => { updateCounter(); })); }