//receive public void RecieveData() { while (true) { try { //if(!socketAvailible) continue; byte[] data = new byte[dataSize]; // буфер для ответа int bytes = 0; // количество полученных байт do { bytes = stream.Read(data, bytes, data.Length - bytes); Thread.Sleep(10); } while (stream.DataAvailable); DataInfo dataInfo = DataInfo.Deserialize(data); switch (dataInfo.type) { case DataInfo.DataType.RequestInfo: break; case DataInfo.DataType.MapInfo: SyncContext.RunOnUnityThread(() => Links.RequestController.MapInfoReceieved(dataInfo)); break; case DataInfo.DataType.PlayerInfo: SyncContext.RunOnUnityThread(() => Links.RequestController.ResponseInfoReceieved(dataInfo)); break; case DataInfo.DataType.ResponseInfo: SyncContext.RunOnUnityThread(() => Links.RequestController.ResponseInfoReceieved(dataInfo)); break; } } catch (Exception ex) { Debug.Log(ex.Message); Debug.Log(ex.StackTrace); } Thread.Sleep(10); } }