예제 #1
0
        // パケット送信/応答待ち
        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();
            }));
        }