2
0
Эх сурвалжийг харах

Add function to get the port number of a peer

nxrighthere 7 жил өмнө
parent
commit
e41c20d55a

+ 11 - 0
Source/Managed/ENet.cs

@@ -527,6 +527,14 @@ namespace ENet {
 			}
 		}
 
+		public ushort Port {
+			get {
+				CheckCreated();
+
+				return Native.enet_peer_get_port(nativePeer);
+			}
+		}
+
 		public PeerState State {
 			get {
 				return nativePeer == IntPtr.Zero ? PeerState.Uninitialized : Native.enet_peer_get_state(nativePeer);
@@ -763,6 +771,9 @@ namespace ENet {
 		[DllImport(nativeLibrary, CallingConvention = CallingConvention.Cdecl)]
 		internal static extern int enet_peer_get_ip(IntPtr peer, byte[] ip, IntPtr ipLength);
 
+		[DllImport(nativeLibrary, CallingConvention = CallingConvention.Cdecl)]
+		internal static extern ushort enet_peer_get_port(IntPtr peer);
+
 		[DllImport(nativeLibrary, CallingConvention = CallingConvention.Cdecl)]
 		internal static extern PeerState enet_peer_get_state(IntPtr peer);
 

+ 5 - 0
Source/Native/enet.h

@@ -893,6 +893,7 @@ extern "C" {
 
     ENET_API enet_uint32         enet_peer_get_id (ENetPeer *);
     ENET_API int                 enet_peer_get_ip (ENetPeer *, char * ip, size_t ipLength);
+    ENET_API enet_uint16         enet_peer_get_port (ENetPeer *);
     ENET_API ENetPeerState       enet_peer_get_state (ENetPeer *);
     ENET_API enet_uint32         enet_peer_get_rtt (ENetPeer *);
     ENET_API enet_uint64         enet_peer_get_packets_sent (ENetPeer *);
@@ -3319,6 +3320,10 @@ extern "C" {
         return enet_address_get_host_ip(&peer->address, ip, ipLength);
     }
 
+    enet_uint16 enet_peer_get_port(ENetPeer *peer) {
+        return peer->address.port;
+    }
+
     ENetPeerState enet_peer_get_state(ENetPeer *peer) {
         return peer->state;
     }