예제 #1
0
        public int AddToFirstAvailable(UDPClientHandler client)
        {
            for (int i = 0; i < Capacity; i += 1)
            {
                if (!ContainsId(i))
                {
                    clients.Add(i, client);
                    return(i);
                }
            }

            return(-1);
        }
예제 #2
0
    public UdpManager(int port)
    {
        //开启服务器
        Handlers = new UDPClientHandler();
        Handlers.AutoLoad();

        EventBasedNetListener listener = new EventBasedNetListener();

        server = new NetManager(listener, 100, "111");
        server.Start(port);
        Log.Info("upd 端口:" + port);

        listener.PeerConnectedEvent += peer =>
        {
            peer.Handle = Handlers.Handle;
            Log.Info("新udp连接:{0}", peer.EndPoint);
            lock (clients_add)
            {
                clients_add.Add(peer);
            }
            onPeerConnected?.Invoke(peer);
        };
        listener.NetworkReceiveEvent += (fromPeer, dataReader) =>
        {
            lock (fromPeer.RecvBuffer_Add)
            {
                fromPeer.RecvBuffer_Add.Add(dataReader.Data);
            }
        };
        listener.PeerDisconnectedEvent += (peer, disconnectInfo) =>
        {
            Console.WriteLine("peer disconnectd ===>", peer.EndPoint); // Show peer ip
            onPeerDisconnected?.Invoke(peer);
        };

        pollEventThread = new Thread(pollEvent);
        pollEventThread.Start();
    }
예제 #3
0
 public void OnClientPacketReceived(Packet packet, UDPClientHandler client)
 {
     throw new NotImplementedException();
 }
예제 #4
0
 public void OnClientReconnected(UDPClientHandler oldClient, UDPClientHandler newClient)
 {
     throw new NotImplementedException();
 }
예제 #5
0
 public void OnClientDisconnected(UDPClientHandler client)
 {
     throw new NotImplementedException();
 }
예제 #6
0
 public void Remove(UDPClientHandler client)
 {
     clients.Remove(client.Id);
     ipsToClients.Remove(client.RemoteEP);
 }
예제 #7
0
 public void AddTo(UDPClientHandler client, int id)
 {
     clients.Add(id, client);
     ipsToClients.Add(client.RemoteEP, client);
 }