FLASH与服务器通讯 (JAVA)(3)

public void send(String s)
    {
        for (int i=0;i<outputArrayList.size();i++)
        {
            PrintWriter pw = new PrintWriter((OutputStream)outputArrayList.get(i));
            pw.write(s);
            pw.flush();
        }
    }

}
?

线程那个部分代码写得比较搓,明白原理就行了……

这样基本的通信功能就实现了,在接收的时候先判定一下发过来的是不是安全认证s.indexOf("<policy-file-request/>")>=0
假如是返回安全认证,就是那个safe字符串。
否则把发过来的信息广播出去。sender.send方法。

要注重的是:
?while ( is.read(reader) != -1 )这一行
我一开始用的是BufferedReader readLine()方法读取的。总是莫名奇妙的出错,所以建议不要用BufferedReader,直接读取byte或者byte数组的方式比较好。再把byte[]转成string判定是否是FLASH发过来的安全认证。

假如出现安全沙箱错误,一般是安全认证没有返回,但是别的情况也有可能出现这个错误,比如服务器的socket关闭早了,或者服务器没有把socket流内的内容读取完毕就关闭了,都会导致这个错误。
所以socket读到不能再读,然后再关闭,这个地方需要注重。

还有一个用XMLSocket的方式通信的,和socket差不多,这里不多说了,安全认证也是一样的,比socket简单一些。

这样,就完成了基本的 FLASH与JAVA 通信。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwpwyg.html