示例#1
0
        public DataMessage(byte[] data)
        {
            //the first four bytes are for type connect
            this.typeConnect = (TypeConnect)BitConverter.ToInt32(data, 0);

            //the next four store the length of name client
            int lengthName    = BitConverter.ToInt32(data, 4);
            int lengthMessage = BitConverter.ToInt32(data, 8);

            //read name and message
            if (lengthName > 0)
            {
                this.clientName = Encoding.UTF8.GetString(data, 12, lengthName);
            }
            else
            {
                this.clientName = string.Empty;
            }

            if (lengthMessage > 0)
            {
                this.message = (new Bitmap(new MemoryStream(data.SubArray(12 + lengthName, lengthMessage)))).ToMat();
            }
            else
            {
                this.message = null;
            }
        }
示例#2
0
        public GConnect(Vertex v, Vertex own, Line g, TypeConnect type, int length = 1)
        {
            if (g == null)
            {
                switch (type)
                {
                case TypeConnect.None:
                    break;

                case TypeConnect.DigraphOwn:
                    g = new Digraph(own, v)
                    {
                        Length = length
                    };
                    v.SetConnect(own, TypeConnect.DigraphSon, length, g);
                    break;

                case TypeConnect.DigraphSon:
                    g = new Digraph(v, own)
                    {
                        Length = length
                    };
                    v.SetConnect(own, TypeConnect.DigraphOwn, length, g);
                    break;

                case TypeConnect.Edge:
                    g = new Edge(own, v)
                    {
                        Length = length
                    };
                    v.SetConnect(own, TypeConnect.Edge, length, g);
                    break;

                case TypeConnect.Loop:
                    g = new Loop(v)
                    {
                        Length = length
                    };
                    break;

                case TypeConnect.Diloop:
                    g = new Diloop(v)
                    {
                        Length = length
                    };
                    break;

                default:
                    break;
                }
            }
            Edge   = g;
            Vertex = v;
            Own    = own;
            Type   = type;
        }
示例#3
0
        private void SendMessage(TypeConnect type, Mat message)
        {
            DataMessage msgToSend = new DataMessage();

            msgToSend.clientName  = this.clientName;
            msgToSend.message     = message;
            msgToSend.typeConnect = type;

            try
            {
                data = msgToSend.ToByte();
                clientSocket.BeginSendTo(data, 0, data.Length, SocketFlags.None,
                                         serverEndPoint, new AsyncCallback(OnSend), null);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Client Sending",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#4
0
 public DataMessage()
 {
     typeConnect = TypeConnect.Null;
     clientName  = string.Empty;
     message     = null;
 }