using System; using System.Collections; using System.Collections.Generic; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using UnityEngine; using UnityEngine.UI; using QFramework; public class UDPPrinter : MonoBehaviour, IController, ICanSendEvent, ICanGetUtility { private UDPUtility udpUtil; public Transform udpMsgContent; public GameObject udpMsgItem; public InputField InputSendMsg; private bool isUDPInit; // Start is called before the first frame update void Start() { udpUtil = GetArchitecture().GetUtility(); } // Update is called once per frame void Update() { if (udpUtil != null && !"".Equals(udpUtil.getReceivedValue())) { GameObject item = Instantiate(udpMsgItem, udpMsgContent); item.GetComponentInChildren().text = udpUtil.receivedData.Value; this.GetModel().onDataRecived.Invoke(udpUtil.receivedData.Value); } if (udpUtil.getTimeOutState() && udpUtil.isOpenUDP) { this.SendEvent(new onUDPLinkException(udpUtil.exceptionData.Value)); udpUtil.isOpenUDP.Value = false; } } private void OnDestroy() { if (udpUtil.reciveT != null && udpUtil.reciveT.ThreadState == ThreadState.Running) { udpUtil.reciveT.Abort(); } } public void sendMsg() { this.GetUtility().sendData(InputSendMsg.text); } public IArchitecture GetArchitecture() { return UDPMangerArchitecture.Interface; } }