如何给Flash的Socket验证提供crossdomain.xml文件服务端口。
2008-07-17 08:47
483 查看
}如果你不是对Actionscript 3的socket或者xmlsocket有研究的话,请忽略此文。
Flash 9的某个版本之后,socket的连接低端口需要一个domain认证才可以访问低端口。当然,这是由于浏览器本身的sandbox的安全性的问题。按下不表,就说如何提供xmlsocket://这样的服务端口的问题。
直接贴代码,实际上flash访问这个端口也是用的tcp连接,所以我们可以创立一个tcplistener来做这件事情,然后当有请求到这里的时候,把crossdomain.xml以二进制方式异步回写过去才可以。同步方法则肯定会有问题。
代码如下:
while (true)
{
try
{
if(_mainListener.Pending())
{
Socket s = _mainListener.AcceptSocket();
if(_bytebuffer!=null)
{
s.BeginSend(_bytebuffer, 0, _bytebuffer.Length, SocketFlags.None, new AsyncCallback(CloseSocket), s);
}
}
}
catch (Exception e)//如果出现异常则打控制台打印到屏幕
{
string test = e.Message;
}
Thread.Sleep(100);
然后在异步调用的callback里关闭这个socket
private void CloseSocket(IAsyncResult ar)
{
if(ar.IsCompleted)
{
Socket workingsock = ar.AsyncState as Socket;
workingsock.Shutdown(SocketShutdown.Send);
workingsock.Close();
}
}
这样就可以确保每次请求认证过来都是可以得到及时的应答的。
相关文章推荐
- 如何给Flash的Socket验证提供crossdomain.xml文件服务端口
- flash跨域策略文件crossdomain.xml配置详解
- flash 跨域访问的控制文件crossdomain.xml
- Flash/ActionScript 解决跨域问题的策略文件crossdomain.xml的写法
- [导入]Flash跨域安全策略文件格式:Crossdomain.xml
- flash跨域策略文件crossdomain.xml配置详解
- Flash跨域安全策略文件格式:Crossdomain.xml
- flash跨域策略文件crossdomain.xml配置详解
- flash跨域策略文件crossdomain.xml配置详解
- flash跨域策略文件crossdomain.xml配置详解
- Flash:彻底理解crossdomain.xml、跨swf调用。
- 跨域文件:crossdomain.xml
- flash跨域访问crossdomain.xml
- 关于flex的crossdomain.xml文件存放目录
- 跨域策略文件crossdomain.xml的配置方法
- Flash跨域传输数据 crossdomain.xml
- 关于flex的crossdomain.xml文件存放目录
- 使用crossdomain.xml让Flash可以跨域传输数据
- Unity加载Web资源需求crossdomain.xml文件格式
- 使用crossdomain.xml让Flash可以跨域传输数据