コード例 #1
0
        private void OnNewConnectionInternal(Listener listener, NewConnectionEventArgs args)
        {
            RawClient client = (RawClient)Activator.CreateInstance(m_ClientType);

            client.DisconnectEvent += OnClientDisconnectInternal;
            client.ConnectEvent    += OnClientConnectInternal;
            client.AssignSocket(args.Socket, this);
        }
コード例 #2
0
 public virtual RawClient[] GetClients()
 {
     RawClient[] clients;
     lock (m_Clients) {
         clients = new RawClient[m_Clients.Count];
         m_Clients.CopyTo(clients);
     }
     return(clients);
 }
コード例 #3
0
        private void OnClientConnectInternal(RawClient client, ConnectEventArgs args)
        {
            bool ok = false;

            lock ( m_Clients ) {
                if (!m_Clients.Contains(client))
                {
                    m_Clients.Add(client);
                    ok = true;
                }
            }
            if (ok)
            {
                OnClientConnect(client, args);
                if (ClientConnectEvent != null)
                {
                    ClientConnectEvent.Invoke(client, args);
                }
            }
        }
コード例 #4
0
        private void OnClientDisconnectInternal(RawClient client, DisconnectEventArgs args)
        {
            bool ok = false;

            lock ( m_Clients ) {
                if (m_Clients.Contains(client))
                {
                    client.DisconnectEvent -= OnClientDisconnectInternal;
                    client.ConnectEvent    -= OnClientConnectInternal;
                    m_Clients.Remove(client);
                    ok = true;
                }
            }
            if (ok)
            {
                OnClientDisconnect(client, args);
                if (ClientDisconnectEvent != null)
                {
                    ClientDisconnectEvent.Invoke(client, args);
                }
            }
        }
コード例 #5
0
ファイル: IgeNetStream.cs プロジェクト: destrofer/IGE.Net
 protected override void Dispose(bool disposing)
 {
     m_Client = null;
     base.Dispose(disposing);
 }
コード例 #6
0
ファイル: IgeNetStream.cs プロジェクト: destrofer/IGE.Net
 internal IgeNetStream(RawClient client)
 {
     m_Client = client;
 }
コード例 #7
0
 public bool Start(int port)
 {
     return(Start(RawClient.GetMyIp(), port));
 }
コード例 #8
0
 public bool Start()
 {
     return(Start(RawClient.GetMyIp(), RawClient.DefaultPort));
 }
コード例 #9
0
 protected virtual void OnClientConnect(RawClient client, ConnectEventArgs args)
 {
 }
コード例 #10
0
ファイル: Listener.cs プロジェクト: destrofer/IGE.Net
 public Listener(int port) : this()
 {
     m_Binding = new IPEndPoint(RawClient.GetMyIp(), port);
 }
コード例 #11
0
ファイル: Listener.cs プロジェクト: destrofer/IGE.Net
 public Listener()
 {
     m_Socket  = null;
     m_Binding = new IPEndPoint(RawClient.GetMyIp(), RawClient.DefaultPort);
     m_Thread  = null;
 }