示例#1
0
        private void EndReceivePacket(IAsyncResult ar)
        {
            int bytesRead = -1;

            try
            {
                if (IsConncted)
                {
                    lock (_socket)
                    {
                        bytesRead = _socket.EndReceive(ar);
                    }
                }
                if (bytesRead == -1)
                {
                    CloseConnection();
                    return;
                }
            }
            catch (ObjectDisposedException)
            {
                Debug.Log("Receive Closed !");
            }
            catch (Exception ex)
            {
                Debug.LogError(ex.Message + "\n" + ex.StackTrace + "\n" + ex.Source);
            }

            //Begin Read
            int position = 0;

            while (position < bytesRead)
            {
                int bufferSize = MiniConverter.BytesToInt(_receiveBuffer, position + HEAD_SIZE * 0);
                //TODO
            }

            _receiveBuffer = new byte[1024];
            recvLen        = _socket.Receive(_receiveBuffer);
            Student ss = ToolForProtobuf.Deserialize <Student>(_receiveBuffer);

            Debug.Log(" 收 到 消 息 " + ss.Id + " -- = " + ss.Email);
        }
示例#2
0
 void SocketSend <T>(T packet) where T : IMessage
 {
     byte[] bf = ToolForProtobuf.Serialize(packet);
     _socket.Send(bf, bf.Length, SocketFlags.None);
 }