Esempio n. 1
0
        private ServerController()
        {
            IPEndPoint e = new IPEndPoint(IPAddress.Any, udpPort);
            uClient = new UdpClient(udpPort);
            cDataController = ContacDataController.Instance;

            UdpState s = new UdpState();
            s.e = e;
            s.u = uClient;

            uClient.BeginReceive(new AsyncCallback(onRecevice), s);
        }
Esempio n. 2
0
        private void onRecevice(IAsyncResult res)
        {
            byte[] dataToSend = new byte[0];
            UdpClient u = (UdpClient)((UdpState)(res.AsyncState)).u;
            IPEndPoint e = (IPEndPoint)((UdpState)(res.AsyncState)).e;

            UdpState s = new UdpState();
            s.e = e;
            s.u = u;

            byte[] data = u.EndReceive(res, ref e);

            CodeineMessage cdMsg = new CodeineMessage(data);

            if (cdMsg.msgType == _t_CDMSG.kMSGContacts)
            {
                if (cdMsg.subType == (byte) _t_MSGSUBTYPE.kMSGGetContacs)
                {
                    PackedContactDescriptors descs = cDataController.packedDescriptors;
                    CodeineMessageContacs cmC = new CodeineMessageContacs((byte)_t_MSGSUBTYPE.kMSGSetContacts, descs);
                    dataToSend = cmC.ToArray();
                    u.BeginSend(dataToSend, dataToSend.Length, e, onSend, s);
                }
            }
            if (cdMsg.msgType == _t_CDMSG.kMSGIPs)
            {
                if (cdMsg.subType == (byte)_t_MSGSUBTYPE.kMSGGetIPs)
                {
                    PackedDeviceInformations packedDeviceInfos = cDataController.packedDeviceInfos;
                    CodeineMessageIPs cmIPs = new CodeineMessageIPs((byte)_t_MSGSUBTYPE.kMSGSetIPs, packedDeviceInfos);
                    dataToSend = cmIPs.ToArray();
                    u.BeginSend(dataToSend, dataToSend.Length, e, onSend, s);
                }
                if (cdMsg.subType == (byte)_t_MSGSUBTYPE.kMSGSetIPs)
                {
                    CodeineMessageIPs cmIPs = new CodeineMessageIPs(data);
                    PackedDeviceInformations pdi = cmIPs.pdi;
                    cDataController.updateDeviceInfo(pdi.devices[0]);
                }
            }

            s.e = new IPEndPoint(IPAddress.Any, 0);
            u.BeginReceive(onRecevice, s);
        }