Exemplo n.º 1
0
        public DataWallServer_Main()
        {
            InitializeComponent();

            log = new Logger();
            db  = new DBActions(ref log);
            db.InitConnection("127.0.0.1",
                              "datawallinfo", "3306", "root",
                              "192837465564738291yashka");
            server = new Server(22876, ref log, "D:\\DataWall\\DataWall.cer", ref db);

            DrawActivitiesTable(ActivityType.ALL_USERS);
            DrawUsersList();
        }
Exemplo n.º 2
0
        public Server(ushort Port,
                      ref Logger logger,
                      string certFile,
                      ref DBActions dbase)
        {
            port     = Port;
            log      = logger;
            db       = dbase;
            clients  = new List <Client>();
            Listener = new TcpListener(IPAddress.Any, port);
            Listener.Start();
            log.msg("Server started at port " + port.ToString());
            serverCertificate = X509Certificate.CreateFromCertFile(certFile);

            handle          = new Thread(ClientsHandler);
            clients_cleaner = new Thread(CleanDead);
            handle.Start();
            clients_cleaner.Start();
        }
Exemplo n.º 3
0
        public Client(
            TcpClient client,
            ref Logger logger,
            X509Certificate serverCertificate,
            ref DBActions dbase)
        {
            mutex     = new Mutex();
            sslStream = new SslStream(client.GetStream(), false);
            log       = logger;
            db        = dbase;

            try
            {
                sslStream.AuthenticateAsServer(serverCertificate,
                                               clientCertificateRequired: false,
                                               checkCertificateRevocation: true);

                //sslStream.ReadTimeout = -1;
                //sslStream.WriteTimeout = 5000;

                log.msg("New client from " +
                        IPAddress.Parse(((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString())
                        + " connected at port " +
                        ((IPEndPoint)client.Client.RemoteEndPoint).Port);

                id = ((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString() + ":" +
                     ((IPEndPoint)client.Client.RemoteEndPoint).Port.ToString();

                alive = true;

                clientThread = new Thread(ClientHandler);
                clientThread.Start();
            }
            catch (Exception exp)
            {
                log.msg("Failed to add new client with error: " + exp.Message);
                sslStream.Close();
                client.Close();
                return;
            }
        }