Как я могу отключить запрос междоменной политики?

Я начал работать над Unity3D. Я просто хочу отправлять / получать данные между Unity3D и Raspberry Pi. Я использовал сокет программирования для этого. Но когда я пытаюсь подключить мой Raspberry Pi, Unity отправляет мне сообщение об ошибке "Невозможно подключиться, так как не найдена допустимая междоменная политика". Зачем нужна междоменная политика. Я просто хочу отправить или получить данные между моим компьютером и малиной. Можно ли отключить запрос междоменной политики или как решить эту проблему.

public static void StartClient() {
    byte[] bytes = new byte[1024];
    int remotePort = xxxx; // My raspberry port
    try {
        IPHostEntry ipHostInfo = Dns.GetHostEntry("xxx.xxx.xxx.xxx"); //-->> my raspberry IP
        IPAddress ipAddress = ipHostInfo.AddressList[0];
        IPEndPoint remoteEP = new IPEndPoint(ipAddress,remotePort);

        Socket mySocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );

        try {
            mySocket.Connect(remoteEP);

            print("Socket connected to" + mySocket.RemoteEndPoint.ToString());

            byte[] msg = Encoding.ASCII.GetBytes("This is a test<EOF>");

            int bytesSent = mySocket.Send(msg);

            int bytesRec = mySocket.Receive(bytes);
            print("Echoed test = " + Encoding.ASCII.GetString(bytes,0,bytesRec));

            mySocket.Shutdown(SocketShutdown.Both);
            mySocket.Close();

            }
        catch (ArgumentNullException ane) {
            print("ArgumentNullException : " + ane.ToString());
        } 
        catch (SocketException se) {
            print("SocketException : " + se.ToString());
        }
        catch (Exception e) {
            print("Unexpected exception : " + e.ToString());
        }

    }
    catch (Exception e) {
        Console.WriteLine( e.ToString());
    }
}

1 ответ

Вы не можете отключить это. Это защита безопасности по запросу WWW и сокетов. Вы должны сделать на своем компьютере авторизацию для этих подключений. Порт по умолчанию для этой проверки безопасности 843.

Вы можете использовать прилагаемую примерную программу из Unity, существующую в папке установки /Data/Tools/SocketPolicyServer, или можете сделать свой собственный сервис запущенным, прослушивая этот порт или включающий файл xml, если у вас есть ваш ПК как веб-сервер что-то вроде этого:

<?xml version="1.0"?>
<cross-domain-policy>
   <allow-access-from domain="*" to-ports="1200-1220"/> 
</cross-domain-policy>"
Другие вопросы по тегам