FlexSocket与Java通讯的客户端写法
来源:优易学  2011-12-21 18:17:48   【优易学:中国教育考试门户网】   资料下载   IT书店

  <?xml version="1.0" encoding="utf-8"?>

  <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"

  fontSize="12" creationComplete="initApp();" >

  <mx:Script>

  <![CDATA[

  import mx.controls.Alert;

  import flash.net.Socket;

  import flash.utils.ByteArray;

  import flash.events.KeyboardEvent;

  //import flash.system.Security;

  private var socket:Socket=new Socket();

  internal function readConf():void

  {

  //   var host:String = client_para.lastResult.SocketClient.host;

  }

  internal function initApp():void

  {

  //    Security.loadPolicyFile("http://192.168.12.15:10000/TestSocket/crossdomain.xml");

  /// Alert(host);

  //var port:int = client_para.lastResult.SocketClient.port;

  //Alert(port);

  myInput.addEventListener(KeyboardEvent.KEY_DOWN,sendMessageUseEnterKey);

  socket.connect("192.168.12.15",10025);

  socket.addEventListener(Event.CONNECT,funConnect);

  socket.addEventListener(Event.CLOSE,funClose);

  socket.addEventListener(ProgressEvent.SOCKET_DATA,funSocket);

  }

  internal function funConnect(event:Event):void

  {

  myText.text+="连接已建立 \n";

  }

  internal function funClose(event:Event):void

  {

  myText.text+="连接已关闭 \n";

  }

  internal function sendMessage(msg:String):void

  {

  var message:ByteArray=new ByteArray();

  message.writeUTFBytes(msg+"\n");

  socket.writeBytes(message);

  socket.flush();

  myInput.text="";

  }

  internal function funSocket(event:ProgressEvent):void

  {

  var msg:String="";

  while(socket.bytesAvailable)

  {

  msg+=socket.readMultiByte(socket.bytesAvailable,"utf8");

  var arr:Array=msg.split('\n');

  for(var i:int=0;i<arr.length;i++)

  {

  if(arr[i].length>1)

  {

  var myPattern:RegExp=/\r/;

  arr[i]=arr[i].replace(myPattern,'');

  myText.text+=arr[i]+"\n";

  }

  }

  myText.verticalScrollPosition = myText.maxVerticalScrollPosition;//滚动到最下面

  }

  }

  private function sendMessageUseEnterKey(evt:KeyboardEvent):void{

  if(evt.keyCode==13){

  sendMessage(myName.text+':'+myInput.text);

  }

  }

  ]]>

  </mx:Script>

  <!--<mx:HTTPService id="client_para" url="conf.xml" useProxy="false"/>-->

  <mx:Panel width="631.5" height="423" horizontalCenter="0" verticalCenter="3.5" layout="absolute" verticalAlign="middle" horizontalAlign="center">

  <mx:TextArea y="42" width="566" height="247" id="myText" horizontalCenter="0"/>

  <mx:TextInput x="23" y="322" width="486.75" id="myInput"/>

  <mx:Button label="Send" id="myBtn" click="sendMessage(myName.text+':'+myInput.text)" x="530" y="323"/>

  <mx:TextInput width="566" text="Name" id="myName" verticalCenter="-169.5" horizontalCenter="0"/>

  </mx:Panel>

  </mx:Application>

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训