示例#1
0
        public void ConnectAsync(string host, ushort port)
        {
            UAddress    address       = new UAddress(host, port);
            ENetAddress nativeAddress = address.Struct;

            this.PeerPtr = NativeMethods.enet_host_connect(this.poller.Host, ref nativeAddress, 2, 0);
            if (this.PeerPtr == IntPtr.Zero)
            {
                throw new Exception($"host connect call failed, {host}:{port}");
            }
            this.poller.USocketManager.Add(this.PeerPtr, this);
        }
示例#2
0
        public void ConnectAsync(IPEndPoint ipEndPoint)
        {
            UAddress    address       = new UAddress(ipEndPoint.Address.ToString(), ipEndPoint.Port);
            ENetAddress nativeAddress = address.Struct;

            this.PeerPtr = NativeMethods.enet_host_connect(this.poller.Host, ref nativeAddress, 2, 0);
            if (this.PeerPtr == IntPtr.Zero)
            {
                throw new Exception($"host connect call failed, {ipEndPoint}");
            }
            this.poller.USocketManager.Add(this.PeerPtr, this);
        }
示例#3
0
        public UPoller(string hostName, ushort port)
        {
            try
            {
                this.USocketManager = new USocketManager();

                UAddress    address       = new UAddress(hostName, port);
                ENetAddress nativeAddress = address.Struct;
                this.host = NativeMethods.enet_host_create(ref nativeAddress,
                                                           NativeMethods.ENET_PROTOCOL_MAXIMUM_PEER_ID, 0, 0, 0);

                if (this.host == IntPtr.Zero)
                {
                    throw new Exception("Host creation call failed.");
                }

                NativeMethods.enet_host_compress_with_range_coder(this.host);
            }
            catch (Exception e)
            {
                throw new Exception($"UPoll construct error, address: {hostName}:{port}", e);
            }
        }
示例#4
0
 internal static extern IntPtr enet_host_connect(IntPtr host, ref ENetAddress address, uint channelCount, uint data);
示例#5
0
 internal static extern IntPtr enet_host_create(
     ref ENetAddress address, uint peerLimit, uint channelLimit, uint incomingBandwidth, uint outgoingBandwidth);
示例#6
0
 internal static extern int enet_address_get_host_ip(ref ENetAddress address, StringBuilder hostIp, uint ipLength);
示例#7
0
 internal static extern int enet_address_get_host(ref ENetAddress address, StringBuilder hostName, uint nameLength);
示例#8
0
 internal static extern int enet_address_set_host(ref ENetAddress address, string hostName);