From 4c7d3c9e83c71747cf45e74db830fc3b14e5a605 Mon Sep 17 00:00:00 2001 From: neonaleon Date: Thu, 21 Jan 2021 16:41:54 +0800 Subject: [PATCH 1/4] Switch does not support ipv6 --- kcp2k/Assets/kcp2k/highlevel/KcpServer.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs b/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs index bd8274b7..45d59964 100644 --- a/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs +++ b/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs @@ -39,7 +39,11 @@ public class KcpServer // state Socket socket; +#if UNITY_SWITCH + EndPoint newClientEP = new IPEndPoint(IPAddress.Any, 0); +#else EndPoint newClientEP = new IPEndPoint(IPAddress.IPv6Any, 0); +#endif // IMPORTANT: raw receive buffer always needs to be of 'MTU' size, even // if MaxMessageSize is larger. kcp always sends in MTU // segments and having a buffer smaller than MTU would @@ -82,13 +86,15 @@ public void Start(ushort port) } // listen +#if UNITY_SWITCH + // Switch does not support ipv6 + socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); + socket.Bind(new IPEndPoint(IPAddress.Any, port)); +#else socket = new Socket(AddressFamily.InterNetworkV6, SocketType.Dgram, ProtocolType.Udp); - // dual mode where available. - // (not available on nintendo switch, where it throws errors) -#if !UNITY_SWITCH socket.DualMode = true; -#endif socket.Bind(new IPEndPoint(IPAddress.IPv6Any, port)); +#endif } public void Send(int connectionId, ArraySegment segment, KcpChannel channel) From 0f5a37967c0eb8a17ec9db36d2466bf1d74a1e5a Mon Sep 17 00:00:00 2001 From: vis2k Date: Fri, 22 Jan 2021 09:19:44 +0800 Subject: [PATCH 2/4] Update kcp2k/Assets/kcp2k/highlevel/KcpServer.cs --- kcp2k/Assets/kcp2k/highlevel/KcpServer.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs b/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs index 45d59964..6b223818 100644 --- a/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs +++ b/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs @@ -40,6 +40,7 @@ public class KcpServer // state Socket socket; #if UNITY_SWITCH +// switch does not support ipv6 EndPoint newClientEP = new IPEndPoint(IPAddress.Any, 0); #else EndPoint newClientEP = new IPEndPoint(IPAddress.IPv6Any, 0); From 3553bb1168d59a122a5ae42d6a47563577d2ff2b Mon Sep 17 00:00:00 2001 From: vis2k Date: Fri, 22 Jan 2021 09:20:04 +0800 Subject: [PATCH 3/4] Update kcp2k/Assets/kcp2k/highlevel/KcpServer.cs --- kcp2k/Assets/kcp2k/highlevel/KcpServer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs b/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs index 6b223818..431bec52 100644 --- a/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs +++ b/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs @@ -40,7 +40,7 @@ public class KcpServer // state Socket socket; #if UNITY_SWITCH -// switch does not support ipv6 + // switch does not support ipv6 EndPoint newClientEP = new IPEndPoint(IPAddress.Any, 0); #else EndPoint newClientEP = new IPEndPoint(IPAddress.IPv6Any, 0); From 54aa09caa714858027f1bb45344267e3ee08f6eb Mon Sep 17 00:00:00 2001 From: vis2k Date: Fri, 22 Jan 2021 09:20:18 +0800 Subject: [PATCH 4/4] Update kcp2k/Assets/kcp2k/highlevel/KcpServer.cs --- kcp2k/Assets/kcp2k/highlevel/KcpServer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs b/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs index 431bec52..9dd98af6 100644 --- a/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs +++ b/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs @@ -40,7 +40,7 @@ public class KcpServer // state Socket socket; #if UNITY_SWITCH - // switch does not support ipv6 + // switch does not support ipv6 EndPoint newClientEP = new IPEndPoint(IPAddress.Any, 0); #else EndPoint newClientEP = new IPEndPoint(IPAddress.IPv6Any, 0);