2007-03-22

与 Flash 通信的问题

我一直希望能用Flash做我程序的界面,主程序当然还是用VC写,这就需要网络通信.

查了半天help,发现了XMLSocket可以用,然后开个nc当server,用Flash连,发现可以连接,Flash也可以给nc发消息,但是nc发过来的就不行了。

帮助里关于onData隐约地说明了Flash接受到的消息一定要以一个\0结尾,我一开始就是这么想的,nc似乎发不了\0,于是我就弄了个简单的VC程序,不过一开始总不行,因为我用的是std::string("some words\0"),似乎std::string会自动切掉尾部\0,于是改为std::string("haha\0",5),
啊,终于看到Flash有反应了。不错。

还有,Flash导出swf后,connect好像只会连接80端口,再转为exe就正常了,这有点好像调用外部exe的情况,估计也是为了安全吧。不过我用别的播放器,比如KMPlayer或Sothink SWF Decompiler就没这问题。

另外,据说Flash9的AS3已经没有这个问题了,我没试过,不知道是不是真的。

No comments: