diff --git a/UnityTransport/LightReflectiveMirrorTransport.cs b/UnityTransport/LightReflectiveMirrorTransport.cs index 72d85b4..1d5331b 100644 --- a/UnityTransport/LightReflectiveMirrorTransport.cs +++ b/UnityTransport/LightReflectiveMirrorTransport.cs @@ -116,6 +116,7 @@ namespace LightReflectiveMirror { IPEndPoint newClientEP = new IPEndPoint(IPAddress.Any, 0); var data = _NATPuncher.EndReceive(result, ref newClientEP); + _NATPuncher.BeginReceive(new AsyncCallback(RecvData), _NATPuncher); if (!newClientEP.Address.Equals(_relayPuncherIP.Address)) { @@ -146,8 +147,6 @@ namespace LightReflectiveMirror } } } - - _NATPuncher.BeginReceive(new AsyncCallback(RecvData), _NATPuncher); } void ServerProcessProxyData(IPEndPoint remoteEndpoint, byte[] data) @@ -505,7 +504,7 @@ namespace LightReflectiveMirror else { relayServerList?.Clear(); - relayServerList = JsonConvert.DeserializeObject>(result.Decompress()); + relayServerList = JsonConvert.DeserializeObject>(result.Decompress()); serverListUpdated?.Invoke(); } #endif @@ -557,7 +556,7 @@ namespace LightReflectiveMirror else { relayServerList?.Clear(); - relayServerList = JsonConvert.DeserializeObject>(result); + relayServerList = JsonConvert.DeserializeObject>(result); serverListUpdated?.Invoke(); } #endif diff --git a/UnityTransport/SocketProxy.cs b/UnityTransport/SocketProxy.cs index fa611e7..8017b66 100644 --- a/UnityTransport/SocketProxy.cs +++ b/UnityTransport/SocketProxy.cs @@ -57,11 +57,12 @@ namespace LightReflectiveMirror void RecvData(IAsyncResult result) { - _clientInitialRecv = true; byte[] data = _udpClient.EndReceive(result, ref _recvEndpoint); + _udpClient.BeginReceive(new AsyncCallback(RecvData), _udpClient); + _clientInitialRecv = true; lastInteractionTime = DateTime.Now; dataReceived?.Invoke(_remoteEndpoint, data); - _udpClient.BeginReceive(new AsyncCallback(RecvData), _udpClient); + } } } \ No newline at end of file