Example #1
0
        //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);
            }
        }