AS3から増えてた普通のSocketクラスをなるべくシンプルに使う例
これ↓
一応動くけど、接続先が見つからない時の処理の書き方がよくわからない。
C#で作ったSocketServerとやりとりしている所
コード。全部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;
}