Сделал многопоточный сервер, подключаясь он создает под пользователя отдельный поток. Все бы ничего, но клиент вначале запрашивает 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();
}
}
Я попробовал сделать так, но это работает только для одного пользователя. Чтобы снова зайти на сервер необходимо его перезапустить.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости