public void Receive() { while (true) { byte[] recivcedata = udp.Receive(ref point); string str = Encoding.ASCII.GetString(recivcedata, 0, recivcedata.Length); char head = str[0]; string body = str.Substring(1); if (head.Equals('q')) // quit { break; } else if (head == 'p') { ParamMessage msg = JsonUtility.FromJson <ParamMessage>(body); Monitor.Enter(messages); if (messages.Count < 1024) { messages.Enqueue(msg); } Monitor.Exit(messages); } else if (head == 'm') { Debug.Log(body); } } Quit(); }
public ParamMessage FetchMessage() { Monitor.Enter(messages); ParamMessage msg = null; if (messages.Count > 0) { msg = messages.Dequeue(); } Monitor.Exit(messages); return(msg); }