今天苦战了一天,就跟一个Unity切换到web平台的socket通信出错苦苦纠缠了一天,问了好多大牛,但他们的回复都是我没搞过web平台下的通信或者我只专研于pc或者移动平台。看来没办法了,只能自己硬着头皮往下探究了,貌似之前flash开发就是这样,凡事碰到要跟服务器通信的都会出现老大难的权限不足的错误。
具体错误如下:
SecurityException: Unable to connect, as no valid crossdomain policy was found
System.Net.Sockets.Socket.Connect_internal (IntPtr sock, System.Net.SocketAddress sa, System.Int32& error, Boolean requireSocketPolicyFile)
System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP, Boolean requireSocketPolicy)
System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP)
System.Net.Sockets.UdpClient.DoConnect (System.Net.IPEndPoint endPoint)
System.Net.Sockets.UdpClient.Connect (System.Net.IPEndPoint endPoint)
System.Net.Sockets.UdpClient.Connect (System.String hostname, Int32 port)
这印象太深刻了,搞得我快吐血了,但这时终于搞定了,真欣慰。
之前我写过一篇有关于www访问web服务器的相同的问题,但那个稍微好解决一点,只要参考着官方文档就能解决了,我在这之前也有解决过该类问题的博客,官方的文档是:http://docs.unity3d.com/Documentation/Manual/SecuritySandbox.html,虽然全是英文,但学搞IT的看不了英文还真的很蛋疼,谁叫老美IT发达的呢,希望什么时候,互联网上技术先进的博客或者论坛都是中文的,当然有点想当然了,如果真有那么一天不知道是什么时候呢?!只能期待,下面回归正题。
我创建的服务器是C#的控制台程序,在项目工程文件里面添加以下crossdomain.xml文件,然后打开843的端口,切记这个必须打开,不然就会报错,客户端是通过这个端口来查找配置文件的。然后在运行unity切换到web平台就不会报错了。
怎么打开843端口呢?
解决办法:我们在unity的安装目录下找到一个sockpol.exe的这个一个工具,具体路径是在“...\Unity\Editor\Data\Tools\SocketPolicyServer“路径下有sockpol.exe和它的源码。如果你的服务器端是Windows平台的话,直接Copy一个sockpol.exe到服务器端,在CMD中执行
sockpol.exe --all
即可为服务器端配置好Security SandBox安全策略。
运行了之后我们会看到Hit Return to stop the server,然后如果有一个人连接上的话就会提示
incoming connection
got policy request,sending response
如果做到这一步 恭喜你能连接了。
测试地址:114.92.245.173/aspnet_client/system_web/chat/talk.html
源码以后有空再上传,这时困了,睡觉觉!
分享到:
相关推荐
unity3d应用Protobuf实现Socket通信
unity3d商城付费资源,用于实现websocket客户端,有服务端范例代码
Unity3D中的Socket通信 Posted on 2013年06月24日 by U3d / Unity3D脚本/插件/被围观 39 次 第一部分简单示例:
Unity3D web网页跳转的问题及解决办法 Posted on 2013年02月26日 by U3d / Unity3D脚本/插件/被围观 229 次 Un
Unity3d For Socket.IO 带 Authorization Unity3d For Socket.IO 带 Authorization 使用方式 https://blog.csdn.net/nicepainkiller/article/details/80805472 使用方式 ...
1、Unity3D引用System.Web.DLL打包发布的问题及解决 2、Unity3d中使用HttpUtility,如果直接在plugins中引入 System.Web.DLL的话,在对Unity3d项目打包的时候会报错,在U3D环境中,编译运行一切正常,但在打包发布...
Unity、3D、特效、刀光、卡通、RPG、VFX、战斗、战斗光影、Unity3D、动作特效、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、...
Unity3D 画面扭曲切换效果脚本 DreamWipe.js 1. var camera1 : Camera; 2.var camera2 : Camera; 3.var fadeTime = 4.0; 4.var waveScale = .07; // Higher numbers make the effect more exaggerated. Can be ...
使用Unity自带的一些插件 实现Tab键自动切换输入框,住左(或者右)shift,在按下tab键,光标进行向上跳转!
在Unity3D中实现Http,Socket TCP、UDP,WebService,WebApi通讯方式
30 } 31 } 服务端:1).用Socket()获得一个Socket描述2).用Bind()
2.制作场景边界使用Cube + IsTrigger=True属性是最好的办法 3.编写脚本先理清楚逻辑关系以及一些常识:1.是主摄像机走到边界才会做场景加载或
Unity3D从入门到精通.pdf, Unity3D 入门推荐pdf, 学习Unity3D必备
在unity3d里可以打开usb连接的外置摄像头在unity3d里可以打开usb连接的外置摄像头在unity3d里可以打开usb连接的外置摄像头在unity3d里可以打开usb连接的外置摄像头在unity3d里可以打开usb连接的外置摄像头在unity3d...
Unity3d 拳皇类大型3D格斗游戏源码 街机对战游戏项目 整个项目的完整压缩包 , 直接打开就行 , 无需其他操作 适合二次开发和学习使用 , 如果有问题请切换编译器 或者下载最新编译器 Unity街机游戏源码 Unity3d 拳皇...
unity3d材质资源包 大全 unity3d材质资源包 unity3d材质资源包 资源来源网络,如有侵权请通知删除。
unity 与 winform 使用socket通信
AndroidStudio与Unity3D进行Socket通讯,互发信息,具体文档http://blog.sina.com.cn/s/blog_1322690230102y4t0.html