コード例 #1
0
        public void StartListening()
        {
            // Client Connections Pool
            ClientConnectionPool ConnectionPool = new ClientConnectionPool();

            // Client Task to handle client requests
            ClientTask = new ClientService(ConnectionPool, numOfThread);

            ClientTask.Start();


            TcpListener listener = null;

            listener = new TcpListener(IPAddress.Any, portNum);
            try
            {
                listener.Start();

                int ClientNbr = 0;

                // Start listening for connections.
                Console.WriteLine("Port {0} waiting for a connection...", portNum);
                while (!stop)
                {
                    //		Thread.Sleep(50);
                    //System.Net.Sockets.Socket socket = listener.AcceptSocket();
                    //			TcpClient tcpHandler = listener.AcceptTcpClient();
                    //TcpClientBis t2 = (TcpClientBis)Convert.ChangeType( tcpHandler, typeof(TcpClientBis));
                    TcpClientBis tcpHandler = new TcpClientBis(listener.AcceptSocket());  // socket );

                    if (tcpHandler != null)
                    {
                        if (tcpHandler.ReceiveBufferSize == 0)
                        {
                            Console.WriteLine("Socket error !");
                            tcpHandler.Close();
                        }
                        //				Console.WriteLine("Client#{0} accepted on port {1}", ++ClientNbr, portNum ) ;
                        ++ClientNbr;
                        // An incoming connection needs to be processed.
                        ConnectionPool.Enqueue(new ClientHandler(tcpHandler, ClientNbr - 1, handler));

                        // --TestingCycle ;
                    }
                    else
                    {
                        break;
                    }
                }
                listener.Stop();

                // Stop client requests handling
                ClientTask.Stop();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
コード例 #2
0
 public ClientHandler(TcpClientBis _ClientSocket, int num, string handle)
 {
     handler      = handle;
     m_Num        = num;
     ClientSocket = _ClientSocket;
     //ClientSocket.ReceiveTimeout = 5000 ; // 100 miliseconds
     networkStream   = ClientSocket.GetStream();
     bytes           = new byte[ClientSocket.ReceiveBufferSize];
     ContinueProcess = true;
     m_State         = 0;
     //System.Net.Sockets.Socket ip = ClientSocket.Sock;
     if (handle == "PlayerHandler")
     {
         this.Send(new byte[] { 0x0, 0x06, 0xec, 0x01, 0x71, 0x2c, 0x7e, 0x88 });
     }
 }
コード例 #3
0
ファイル: TcpIPSocketServer.cs プロジェクト: karliky/wowwow
 public ClientHandler( TcpClientBis _ClientSocket, int num, string handle )
 {
     handler = handle;
     m_Num = num;
     ClientSocket = _ClientSocket ;
     //ClientSocket.ReceiveTimeout = 5000 ; // 100 miliseconds
     networkStream = ClientSocket.GetStream();
     bytes = new byte[ ClientSocket.ReceiveBufferSize ];
     ContinueProcess = true ;
     m_State = 0;
     //System.Net.Sockets.Socket ip = ClientSocket.Sock;
     if ( handle == "PlayerHandler" )
     {
         this.Send( new byte[] { 0x0, 0x06, 0xec, 0x01, 0x71, 0x2c, 0x7e, 0x88 } );
     }
 }
コード例 #4
0
ファイル: TcpIPSocketServer.cs プロジェクト: karliky/wowwow
        public void StartListening()
        {
            // Client Connections Pool
            ClientConnectionPool ConnectionPool = new ClientConnectionPool()  ;

            // Client Task to handle client requests
            ClientTask = new ClientService( ConnectionPool, numOfThread ) ;

            ClientTask.Start() ;

            TcpListener listener = null;
            listener = new TcpListener( IPAddress.Any, portNum );
            try
            {
            listener.Start();

            int ClientNbr = 0 ;

            // Start listening for connections.
            Console.WriteLine("Port {0} waiting for a connection...", portNum );
            while ( !stop )
            {
            //		Thread.Sleep(50);
                //System.Net.Sockets.Socket socket = listener.AcceptSocket();
            //			TcpClient tcpHandler = listener.AcceptTcpClient();
                //TcpClientBis t2 = (TcpClientBis)Convert.ChangeType( tcpHandler, typeof(TcpClientBis));
                TcpClientBis tcpHandler = new TcpClientBis( listener.AcceptSocket() );// socket );

                if (  tcpHandler != null)
                {

                    if ( tcpHandler.ReceiveBufferSize == 0 )
                    {
                        Console.WriteLine( "Socket error !" );
                        tcpHandler.Close();
                    }
            //				Console.WriteLine("Client#{0} accepted on port {1}", ++ClientNbr, portNum ) ;
                    ++ClientNbr;
                    // An incoming connection needs to be processed.
                    ConnectionPool.Enqueue( new ClientHandler( tcpHandler, ClientNbr-1, handler  ) ) ;

                    // --TestingCycle ;
                }
                else
                    break;
            }
            listener.Stop();

            // Stop client requests handling
            ClientTask.Stop() ;
            }
            catch (Exception e)
            {
            Console.WriteLine(e.ToString());
            }
        }