void Update() { TheMsg msg = new TheMsg(); msg.Name = "am the name"; msg.Num = 32; if (debug) { Debug.Log(string.Format("The Msg is ( Name:{0},Num:{1} )", msg.Name, msg.Num)); } TheMsg msg2 = null; using (var ms = new MemoryStream(msg.CalculateSize())) { msg.WriteTo(ms); ms.Seek(0, SeekOrigin.Begin); msg2 = TheMsg.Parser.ParseFrom(ms); } if (debug) { Debug.Log(string.Format("The Msg2 is ( Name:{0},Num:{1} )", msg2.Name, msg2.Num)); } //新建一个Person对象,并赋值 Person p = new Person(); p.Name = "IongX"; p.Age = Time.frameCount; p.NameList.Capacity = 4; p.NameList.Add("熊"); p.NameList.Add("棒"); p.NameList.Add("棒"); //将对象转换成字节数组 byte[] databytes = p.ToByteArray(); //将字节数据的数据还原到对象中 IMessage IMperson = new Person(); Person p1 = new Person(); p1 = (Person)IMperson.Descriptor.Parser.ParseFrom(databytes); //输出测试 if (debug) { Debug.Log(p1.Name); Debug.Log(p1.Age); for (int i = 0; i < p1.NameList.Count; i++) { Debug.Log(p1.NameList[i]); } Debug.LogError("----------------"); } }
public void StartClient(string hostIp, int hostPort) { // Connect to a remote device. try { // Establish the remote endpoint for the socket. // The name of the // remote device is "host.contoso.com". IPHostEntry ipHostInfo = Dns.GetHostEntry(hostIp); IPAddress ipAddress = ipHostInfo.AddressList[0]; IPEndPoint remoteEP = new IPEndPoint(ipAddress, hostPort); // Create a TCP/IP socket. client = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp); // Connect to the remote endpoint. client.BeginConnect(remoteEP, new AsyncCallback(ConnectCallback), client); connectDone.WaitOne(); TheMsg msg = new TheMsg(); msg.Name = "apple"; msg.Num = 1; MessageText.SetMessage("Send protocol buffer data : " + msg.ToString()); byte[] byteData; using (MemoryStream ms = new MemoryStream()) { msg.WriteTo(ms); byteData = ms.ToArray(); } // Send test data to the remote device. Send(byteData); sendDone.WaitOne(); // Receive the response from the remote device. Receive(client); receiveDone.WaitOne(); // Write the response to the console. //Console.WriteLine("Response received : {0}", response); MessageText.SetMessage("Response received : " + response); } catch (Exception e) { //Console.WriteLine(e.ToString()); MessageText.SetMessage(e.ToString()); } }
void Start() { #region Class序列化成二进制 TheMsg msg = new TheMsg(); msg.Name = "am the name"; msg.Content = "haha"; Debug.Log(string.Format("The Msg is ( Name:{0}, Num:{1} )", msg.Name, msg.Content)); byte[] bmsg; using (MemoryStream ms = new MemoryStream()) { msg.WriteTo(ms); bmsg = ms.ToArray(); } #endregion #region 二进制反序列化成Class TheMsg msg2 = TheMsg.Parser.ParseFrom(bmsg); Debug.Log(string.Format("The Msg2 is ( Name:{0}, Num:{1} )", msg2.Name, msg2.Content)); #endregion }
void Start() { TheMsg msg = new TheMsg(); msg.Name = "am the name"; msg.Num = 32; Debug.Log(string.Format("The Msg is ( Name:{0},Num:{1} )", msg.Name, msg.Num)); byte[] bmsg; using (MemoryStream ms = new MemoryStream()) { msg.WriteTo(ms); bmsg = ms.ToArray(); } TheMsg msg2 = TheMsg.Parser.ParseFrom(bmsg); Debug.Log(string.Format("The Msg2 is ( Name:{0},Num:{1} )", msg2.Name, msg2.Num)); }
public void OnButtonClick() { Debug.Log("OnButtonClick " + mInputField.text); // mText.text = mInputField.text; TheMsg msg = new TheMsg(); msg.Name = mInputField.text; msg.Num = 32; //Debug.Log(string.Format("The Msg is ( Name:{0},Num:{1} )", msg.Name, msg.Num)); byte[] bmsg; using (MemoryStream ms = new MemoryStream()) { msg.WriteTo(ms); bmsg = ms.ToArray(); } TheMsg msg2 = TheMsg.Parser.ParseFrom(bmsg); mText.text = msg2.Name; }
private void _TestProtobuff() { //1. new a message. TheMsg message_1 = new TheMsg(); message_1.Name = "steve jobs"; message_1.Num = 19550224; Debug.Log("message1: " + message_1.ToString()); //2. write byte buffer to file. byte[] byte_buffer; using (MemoryStream memoryStream = new MemoryStream()) { message_1.WriteTo(memoryStream); byte_buffer = memoryStream.ToArray(); } //3. read message from byte buffer. TheMsg message_2 = TheMsg.Parser.ParseFrom(byte_buffer); Debug.Log("message2: " + message_2.ToString()); }