none
ООП c#

    Вопрос

  • Вот такая вот ошибка:
    Ошибка CS0176 Доступ к члену "Server.ClientSocket" через ссылку на экземпляр невозможен; вместо этого уточните его, указав имя типа.

    Как можно исправить?

    /* Program.cs */
           public static Socket ClientSocket;
    
            public static void Main(string[] args)
            {
    
                // <!-- Импортируем и получаем скрипты из классов
                SettingsProgram ClassSettings = new SettingsProgram(); // Настройка сервера
                Socket socket = ClassSettings.socket; // 
                String ServerName = ClassSettings.ServerName;
                IPAddress IP = ClassSettings.IpString;
                int Port = ClassSettings.PortString;
                DateTime Time = ClassSettings.Time;
    
                Files ClassFiles = new Files(); // Основные файлы
    
                ConsoleCommands ClassCommands = new ConsoleCommands(); // Команды в консоле
                Thread ThreadCommands = new Thread(ClassCommands.Commands);
    
                Client ClassClient = new Client(); // Клиент
                Thread ThreadClient = new Thread(ClassClient.ClientMain);
                // Импортируем и получаем скрипты из классов --!>
    
                Console.Title = $"Server '{ServerName}'";
    
                Console.WriteLine($"[{Time}] Сервер {ServerName} запускается...");
                Console.WriteLine($"[{Time}] IP-адрес сервера: {IP}\n[{Time}] Порт сервера: {Port}");
    
                try
                {
                    socket.Bind(new IPEndPoint(IP, Port)); // Задаём сокету ИП и ПОРТ адрес
                    socket.Listen(0);
                    ClientSocket = socket.Accept();
    
                    Console.WriteLine($"[{Time}] Сервер успешно запустился!\n[{Time}] Введите /help для помощи.");
                    ThreadCommands.Start();
                    ThreadClient.Start();
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"[{Time}] [ERROR] Произошла ошибка при запуске сервера!\n{ex}");
                    Console.ReadKey(true);
                }
            }

    /* Client.cs */ 
       class Client
        {
             static Byte[] buffer = new byte[256];
    
            public void ClientMain()
            {
                // Классы
                SettingsProgram ClassSettings = new SettingsProgram();
                Socket socket = ClassSettings.socket;
    
                Server ClassMain = new Server();
                Socket ClientSocket = ClassMain.ClientSocket;
    
    
                while (true)
                {
                    if (ClientSocket.Connected == true)
                    {
                        Console.WriteLine("[{TimeString}] Пользователь [USER] подключился к серверу!");
                        while (true)
                        {
                            ClientSocket.Receive(buffer);
                            string message = Encoding.UTF8.GetString(buffer);
                            Console.WriteLine(message);
    
                            switch (message)
                            {
                                case "/":
                                    string messageno = "[{TimeString}] [WARN] Неизвестная команда! Введите /help для помощи.";
                                    Console.WriteLine(messageno);
    
                                    Encoding.UTF8.GetBytes(messageno);
                                    byte[] messagenobyte = Encoding.UTF8.GetBytes(messageno);
                                    ClientSocket.Send(messagenobyte);
    
                                    message = null;
                                    break;
                                case "/help":
                                    Console.WriteLine("/stop - выключить сервер\n/whois - информация о пользователе");
                                    message = null;
                                    break;
                                case "/stop":
                                    Console.WriteLine("[{TimeString}] Выключение сервера...");
                                    message = null;
                                    break;
                                case (default):
                                    Console.WriteLine("{TimeString} [USER]: {Message}");
                                    message = null;
                                    break;
                            }
                        }
                    }
                }
            }


    9 марта 2018 г. 8:40

Ответы