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); }
void SocketSend <T>(T packet) where T : IMessage { byte[] bf = ToolForProtobuf.Serialize(packet); _socket.Send(bf, bf.Length, SocketFlags.None); }