예제 #1
0
 public TSocket(TPoller poller)
 {
     this.poller             = poller;
     this.socket             = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     this.innArgs.Completed += this.OnComplete;
     this.outArgs.Completed += this.OnComplete;
 }
예제 #2
0
 public TSocket(TPoller poller, string host, int port) : this(poller)
 {
     try
     {
         this.Bind(host, port);
         this.Listen(100);
     }
     catch (Exception e)
     {
         throw new Exception($"socket bind error: {host} {port}", e);
     }
 }
예제 #3
0
        public override void Dispose()
        {
            if (this.poller == null)
            {
                return;
            }

            foreach (long id in this.idChannels.Keys.ToArray())
            {
                TChannel channel = this.idChannels[id];
                channel.Dispose();
            }
            this.acceptor?.Dispose();
            this.poller = null;
        }