我开始研究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());
}
}
解决方法:
你不能禁用它.
是WWW请求和套接字的安全保护.
您需要在电脑上制作此连接的授权.
这个安全部门的聋人港口是843.
您可以使用安装文件夹/ Data / Tools / SocketPolicyServer上现有的Unity中包含的示例程序,或者可以让您自己的服务正在运行侦听此端口或包含xml文件,如果您有Pc如何使用这样的Web服务器:
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" to-ports="1200-1220"/>
</cross-domain-policy>"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。