关于flex actionsript的socket通信的一个小问题及其解决

由于是新手,所以有时会被一个极小的问题绕个两三天。言归正转,问题是这样的:

我用flex写一个简单的swf,与服务器端进行xmlsocket通信

    

var xmlSocket:XmlSocket=new XmlSocket();

function Init():void
{

xmlSocket.addEventListener(Event.CONNECT,onConnect);

xmlSocket.connect(
"localhost",6000);
xmlSocket.send(
"INIT");

}

//加这个的本意是看看由于socket错误
function onConnect()
{
trace(
"connected");
}

可是问题就出来了,flex调试器输出了connected而服务器端始终没有收到 "INIT" 消息。以为是安全沙箱的问题神马的,疯狂检查其他模块,折腾了2天,因为这块代码看上去没有任何问题。

也许是连上帝都看不下去了,给了我一点灵感,我把send函数移到onConnect里面问题就解决了。所以正确的写法是:

function onConnect():void
{
trace(
"connected");
xmlSocket.send(
"INIT");
}

结论:用惯了C系列的程序员在这个时候往往会犯思维定势的错误,语言的差别往往不止语法差别这么简单。

posted @ 2011-05-15 09:54  易刚  阅读(160)  评论(0)    收藏  举报