Пример #1
0
        public void Send(Message message)
        {
            try
            {
                Octets oc = new Octets();
                oc.push(message.getType());
                oc.push(0); // message size, push later
                int oldSize = oc.Size;
                oc.push(message);
                int size = oc.Size - oldSize;
                oc.push_rollback(size + 4);
                oc.push(size); // message size, push now
                oc.push_count(size);

                socket.BeginSend(oc.getBytes(), 0, oc.Size, SocketFlags.None, new AsyncCallback(OnSendResult), null);
            }
            catch (Exception e)
            {
                UnityEngine.Debug.LogError(e);
                Close();
            }
        }
Пример #2
0
        private void onReceiveResult(IAsyncResult result)
        {
            try
            {
                int count = socket.EndReceive(result);
                if (count == 0)
                {
                    Close();
                    return;
                }

                ibuffer.push_count(count);
                Decode();
                int    offset, size;
                byte[] bytes = ibuffer.getBytesForWrite(out offset, out size);
                socket.BeginReceive(bytes, offset, size, SocketFlags.None, new AsyncCallback(onReceiveResult), null);
            }
            catch (Exception e)
            {
                UnityEngine.Debug.LogError(e);
                Close();
            }
        }