Ejemplo n.º 1
0
 public void onGetPicture(int index,PictureData pd)
 {
     if (opdh != null)
     {
         opdh(index,pd);
     }
 }
Ejemplo n.º 2
0
 public void showPicture(int index,PictureData pd)
 {
     this.Invoke(new Action(delegate
     {
         MemoryStream ms = new MemoryStream(pd.data);
         Image image = Image.FromStream(ms);
         if (index == 0)
             this.pictureBox1.Image = image;
         else if (index == 1)
             this.pictureBox2.Image = image;
     }));
 }
Ejemplo n.º 3
0
        public void getPictureDate(int index,PictureData pd)
        {
            this.Invoke(new Action(delegate
            {
                MemoryStream ms = new MemoryStream(pd.data);
                Image image = Image.FromStream(ms);
                this.pictureBox1.Image = image;
                recvCount++;
                this.label8.Text = recvCount + "";

            }));
        }
Ejemplo n.º 4
0
        public void DataHandle(byte data)
        {
            switch (satus)
            {
                case parseType.wait0xaa:
                    if (data == 0xaa)
                    {
                        satus = parseType.wait0x55;
                        pd = new PictureData();
                    }
                    break;
                case parseType.wait0x55:
                    if (data == 0x55)
                    {
                        satus = parseType.waitdatalen;
                    }
                    break;
                case parseType.waitdatalen:
                    pd.dataLength += (data << (pd.dataLengthstep * 8));
                    pd.dataLengthstep--;
                    if (pd.dataLengthstep < 0)
                    {
                        pd.data = new byte[pd.dataLength];
                        satus = parseType.waitdata;
                    }
                    break;
                case parseType.waitdata:
                    pd.data[pd.dataIndex++] = data;
                    if (pd.dataIndex == pd.dataLength)
                    {
                        satus = parseType.waittail;
                    }
                    break;
                case parseType.waittail:
                    if (data == 0xa5)
                    {
                        satus = parseType.dataready;
                    }
                    break;
                default:
                    break;

            }
            if (satus == parseType.dataready)
            {
                //接受到完整数据包
                satus = parseType.wait0xaa;
            }
        }
        void RecvThread()
        {
            UdpClient client = new UdpClient(new IPEndPoint(IPAddress.Any, 8866));
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 0);
            parseType satus = parseType.wait0xaa;
            PictureData pd = null;
            while (runFlag)
            {
                byte[] buf = client.Receive(ref endpoint);
                //string msg = Encoding.Default.GetString(buf);
                //int i=0;
                //refresh(msg+endpoint.Address);
                for (int i = 0; i < buf.Length; i++)
                {
                    byte data = buf[i];
                    switch (satus)
                    {
                        case parseType.wait0xaa:
                            if (data == 0xaa)
                            {
                                satus = parseType.wait0x55;
                                pd = new PictureData();
                            }
                            else
                            {
                                satus = parseType.wait0xaa;
                            }
                            break;
                        case parseType.wait0x55:
                            if (data == 0x55)
                            {
                                satus = parseType.waitCmd;
                            }
                            else
                            {
                                satus = parseType.wait0xaa;
                            }
                            break;
                        case parseType.waitCmd:
                            pd.cmd = data;
                            satus = parseType.waitdatalen;
                            break;
                        case parseType.waitdatalen:
                            pd.dataLength += (data << (pd.dataLengthstep * 8));
                            pd.dataLengthstep--;
                            if (pd.dataLengthstep < 0)
                            {
                                pd.data = new byte[pd.dataLength];
                                satus = parseType.waitdata;
                            }
                            break;
                        case parseType.waitdata:
                            pd.data[pd.dataIndex++] = data;
                            if (pd.dataIndex == pd.dataLength)
                            {
                                satus = parseType.waittail;
                            }
                            break;
                        case parseType.waittail:
                            if (data == 0xa5)
                            {
                                satus = parseType.dataready;
                            }
                            else
                            {
                                satus = parseType.wait0xaa;
                            }
                            break;
                        default:
                            satus = parseType.wait0xaa;
                            break;

                    }
                    if (satus == parseType.dataready)
                    {
                        satus = parseType.wait0xaa;
                        parseName(pd.data, endpoint.Address.ToString());
                    }
                }
            }
        }
Ejemplo n.º 6
0
        void recvThread()
        {
            byte[] recvBuffer = new byte[1024];
            parseType satus = parseType.wait0xaa;
            PictureData pd = null;
            //这里通知上一层有新的连接
            if (socket.Connected)
            {
                while (true)
                {
                    int receiveCount = socket.Receive(recvBuffer);

                    for (int i = 0; i < receiveCount; i++)
                    {
                        byte data = recvBuffer[i];
                        switch (satus)
                        {
                            case parseType.wait0xaa:
                                if (data == 0xaa)
                                {
                                    satus = parseType.wait0x55;
                                    pd = new PictureData();
                                }
                                else
                                {
                                    satus = parseType.wait0xaa;
                                }
                                break;
                            case parseType.wait0x55:
                                if (data == 0x55)
                                {
                                    satus = parseType.waitCmd;
                                }
                                else
                                {
                                    satus = parseType.wait0xaa;
                                }
                                break;
                            case parseType.waitCmd:
                                pd.cmd = data;
                                satus = parseType.waitdatalen;
                                break;
                            case parseType.waitdatalen:
                                pd.dataLength += (data << (pd.dataLengthstep * 8));
                                pd.dataLengthstep--;
                                if (pd.dataLengthstep < 0)
                                {
                                    pd.data = new byte[pd.dataLength];
                                    satus = parseType.waitdata;
                                }
                                break;
                            case parseType.waitdata:
                                pd.data[pd.dataIndex++] = data;
                                if (pd.dataIndex == pd.dataLength)
                                {
                                    satus = parseType.waittail;
                                }
                                break;
                            case parseType.waittail:
                                if (data == 0xa5)
                                {
                                    satus = parseType.dataready;
                                }
                                else
                                {
                                    satus = parseType.wait0xaa;
                                }
                                break;
                            default:
                                    satus = parseType.wait0xaa;
                                 break;

                        }
                        if (satus == parseType.dataready)
                        {
                            satus = parseType.wait0xaa;
                            if (opdh != null)
                                opdh(id, pd);
                        }
                    }
                }
            }
        }
        public void receiveData()
        {
            byte[] receiveBuffer = new byte[4096];
            parseType satus = parseType.wait0xaa;
            PictureData pd = null;
            while (flag)
            {
                if (remote != null)
                {
                    int recevCount = newSocket.ReceiveFrom(receiveBuffer, ref remote);
                    for (int i = 0; i < recevCount; i++)
                    {
                        byte data = receiveBuffer[i];
                        switch (satus)
                        {
                            case parseType.wait0xaa:
                                if (data == 0xaa)
                                {
                                    satus = parseType.wait0x55;
                                    pd = new PictureData();
                                }
                                else
                                {
                                    satus = parseType.wait0xaa;
                                }
                                break;
                            case parseType.wait0x55:
                                if (data == 0x55)
                                {
                                    satus = parseType.waitCmd;
                                }
                                else
                                {
                                    satus = parseType.wait0xaa;
                                }
                                break;
                            case parseType.waitCmd:
                                pd.cmd = data;
                                satus = parseType.waitdatalen;
                                break;
                            case parseType.waitdatalen:
                                pd.dataLength += (data << (pd.dataLengthstep * 8));
                                pd.dataLengthstep--;
                                if (pd.dataLengthstep < 0)
                                {
                                    pd.data = new byte[pd.dataLength];
                                    satus = parseType.waitdata;
                                }
                                break;
                            case parseType.waitdata:
                                pd.data[pd.dataIndex++] = data;
                                if (pd.dataIndex == pd.dataLength)
                                {
                                    satus = parseType.waittail;
                                }
                                break;
                            case parseType.waittail:
                                if (data == 0xa5)
                                {
                                    satus = parseType.dataready;
                                }
                                else
                                {
                                    satus = parseType.wait0xaa;
                                }
                                break;
                            default:
                                satus = parseType.wait0xaa;
                                break;

                        }
                        if (satus == parseType.dataready)
                        {
                            satus = parseType.wait0xaa;
                            if (opdh != null)
                                opdh(id, pd);
                        }
                    }
                }
            }
        }