AS3から増えてた普通のSocketクラスをなるべくシンプルに使う例

これ↓



一応動くけど、接続先が見つからない時の処理の書き方がよくわからない。

Source Code(fla) & swf

C#で作ったSocketServerとやりとりしている所

Socket Clinet(Flash) & Server(C#)

コード。全部1フレーム目。

varsocket:Socket=newSocket();

buttonConnect.addEventListener(MouseEvent.CLICK,buttonConnect_click);

buttonSend.addEventListener(MouseEvent.CLICK,sendText);

socket.addEventListener(ProgressEvent.SOCKET_DATA,onRecvData);//データ受信した時

socket.addEventListener(Event.CONNECT,function(){//接続できた時

debug(“connected!”);

buttonConnect.label=”DisConnect?”;

});

socket.addEventListener(Event.CLOSE,function(){//サーバー側から閉じられた時

debug(“closedfromserver”);

buttonConnect.label=”Connect!”;

});

functionbuttonConnect_click(e:Event){

if(!socket.connected){//接続していない時

debug(“connecting…”);

socket.connect(labelHost.text,newint(labelPort.text));//接続する

}

else{//接続している時

socket.close();//閉じる

debug(“closed”);

buttonConnect.label=”Connect!”;

}

}

functionsendText(e:Event):void{

if(!socket.connected)return;

varbytes:ByteArray=newByteArray();

bytes.writeUTFBytes(labelSend.text);

socket.writeBytes(bytes);

socket.flush();

debug(“送信:”+bytes.toString());

}

functiononRecvData(e:Event):void{

if(!socket.connected)return;

if(socket.bytesAvailable>0){

varbytes:ByteArray=newByteArray();

socket.readBytes(bytes);

varrecvStr:String=bytes.toString();

debug(“受信:”+recvStr);

}

}

functiondebug(message:String):void{

trace(“debug:”+message);

textAreaLog.text=message+”¥n”+textAreaLog.text;

}