Отправка CrossDomain перед созданием потока

145
30 декабря 2019, 21:40

Сделал многопоточный сервер, подключаясь он создает под пользователя отдельный поток. Все бы ничего, но клиент вначале запрашивает Crossdomain, затем отключает пользователя и снова подключается к серверу уже без запроса Crossdomain.

        string client_type = "new";
        string data = null;
        byte[] bytes;
        int bytesRec;
        // Начинаем слушать соединения
        while (true)
        {
            // Программа приостанавливается, ожидая входящее соединение
            Socket handler = sListener.Accept();
            if (client_type == "new")
            {
                bytes = new byte[1024];
                bytesRec = handler.Receive(bytes);
                data = Encoding.UTF8.GetString(bytes, 0, bytesRec);
                Console.WriteLine("Полученные данные: {0}", data);
                if (data == "<policy-file-request/>\0")
                {
                    string cross = "<?xml version=\"1.0\"?><cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"7777\" /></cross-domain-policy>\0";
                    byte[] msg = Encoding.UTF8.GetBytes(cross);
                    handler.Send(msg);
                    client_type = "client";
                    Console.WriteLine("Отправка CrossDomain");
                }
            } else {
            ClientObject clientObject = new ClientObject(handler);
            // создаем новый поток для обслуживания нового клиента
            Thread clientThread = new Thread(new 
            ThreadStart(clientObject.Process));
            clientThread.Start();
          }
        }

Я попробовал сделать так, но это работает только для одного пользователя. Чтобы снова зайти на сервер необходимо его перезапустить.

READ ALSO
Работа с uDMX через uDMX.dll

Работа с uDMX через uDMX.dll

Первый вопрос: на сайте разработчика DLL есть API, но часть функций в нем не работает (а именно connected()) поэтому вопрос, как узнать что устройство...

156
Нормализация пути к папке или файлу

Нормализация пути к папке или файлу

Нужно по именам бизнес-сущностей создавать папки и подпапки в них, чтобы названия были максимально близки к оригинальным

162
Не выполняется действие после цикла

Не выполняется действие после цикла

Цикл для обнаружения элементаПотом, когда кнопка пропадает, нужно просто выполнить другие действия и т

172
Открыть recaptcha в модальном окне

Открыть recaptcha в модальном окне

Всем привет! Я не знаю есть ли уже такой вопрос

211