http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e1f9d1df/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/SocketClient.as.html ---------------------------------------------------------------------- diff --git a/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/SocketClient.as.html b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/SocketClient.as.html new file mode 100644 index 0000000..fa93516 --- /dev/null +++ b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/SocketClient.as.html @@ -0,0 +1,140 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<!-- saved from url=(0014)about:internet --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> +<title>SocketClient.as</title> +<link rel="stylesheet" type="text/css" href="../SourceStyles.css"/> +</head> + +<body><pre><span class="ActionScriptpackage">package</span> <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">events</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ErrorEvent</span>; + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">events</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">Event</span>; + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">events</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">IOErrorEvent</span>; + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">events</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ProgressEvent</span>; + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">net</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">Socket</span>; + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">utils</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ByteArray</span>; + + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">mx</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">controls</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">Alert</span>; + + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">spark</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">components</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">TextArea</span>; + + <span class="ActionScriptReserved">public</span> <span class="ActionScriptclass">class</span> <span class="ActionScriptDefault_Text">SocketClient</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">serverURL</span>:<span class="ActionScriptDefault_Text">String</span>; + <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">portNumber</span>:<span class="ActionScriptDefault_Text">int</span>; + <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">socket</span>:<span class="ActionScriptDefault_Text">Socket</span>; + <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">ta</span>:<span class="ActionScriptDefault_Text">TextArea</span>; + <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">state</span>:<span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> 0; + + + <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">SocketClient</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">server</span>:<span class="ActionScriptDefault_Text">String</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">port</span>:<span class="ActionScriptDefault_Text">int</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">output</span>:<span class="ActionScriptDefault_Text">TextArea</span><span class="ActionScriptBracket/Brace">)</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">serverURL</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">server</span>; + <span class="ActionScriptDefault_Text">portNumber</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">port</span>; + <span class="ActionScriptDefault_Text">ta</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">output</span>; + + <span class="ActionScriptDefault_Text">socket</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Socket</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>; + + <span class="ActionScriptReserved">try</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">msg</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"Connecting to "</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">serverURL</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptString">":"</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">portNumber</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptString">"\n"</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">socket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">connect</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">serverURL</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">portNumber</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + <span class="ActionScriptReserved">catch</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">error</span>:<span class="ActionScriptDefault_Text">Error</span><span class="ActionScriptBracket/Brace">)</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">msg</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">error</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">message</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptString">"\n"</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">socket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">close</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + <span class="ActionScriptDefault_Text">socket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addEventListener</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">Event</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">CONNECT</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">connectHandler</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">socket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addEventListener</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">Event</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">CLOSE</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">closeHandler</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">socket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addEventListener</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">ErrorEvent</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ERROR</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">errorHandler</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">socket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addEventListener</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">IOErrorEvent</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">IO_ERROR</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">ioErrorHandler</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">socket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addEventListener</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">ProgressEvent</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">SOCKET_DATA</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">dataHandler</span><span class="ActionScriptBracket/Brace">)</span>; + + <span class="ActionScriptBracket/Brace">}</span> + + <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">closeSocket</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptReserved">try</span> <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">socket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">flush</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">socket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">close</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + <span class="ActionScriptReserved">catch</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">error</span>:<span class="ActionScriptDefault_Text">Error</span><span class="ActionScriptBracket/Brace">)</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">msg</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">error</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">message</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + <span class="ActionScriptBracket/Brace">}</span> + + <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">writeToSocket</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">ba</span>:<span class="ActionScriptDefault_Text">ByteArray</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptReserved">try</span> <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">socket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">writeBytes</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">ba</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">socket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">flush</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + <span class="ActionScriptReserved">catch</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">error</span>:<span class="ActionScriptDefault_Text">Error</span><span class="ActionScriptBracket/Brace">)</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">msg</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">error</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">message</span><span class="ActionScriptBracket/Brace">)</span>; + + <span class="ActionScriptBracket/Brace">}</span> + <span class="ActionScriptBracket/Brace">}</span> + + <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">msg</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">value</span>:<span class="ActionScriptDefault_Text">String</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">ta</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span> <span class="ActionScriptOperator">+=</span> <span class="ActionScriptDefault_Text">value</span><span class="ActionScriptOperator">+</span> <span class="ActionScriptString">"\n"</span>; + <span class="ActionScriptDefault_Text">setScroll</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + + <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">setScroll</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">ta</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">scrollToRange</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">ta</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">y</span><span class="ActionScriptOperator">+</span>20<span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + + <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">connectHandler</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">e</span>:<span class="ActionScriptDefault_Text">Event</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">msg</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"Socket Connected"</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + + <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">closeHandler</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">e</span>:<span class="ActionScriptDefault_Text">Event</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">msg</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"Socket Closed"</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + + <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">errorHandler</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">e</span>:<span class="ActionScriptDefault_Text">ErrorEvent</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">msg</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"Error "</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">e</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + + <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">ioErrorHandler</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">e</span>:<span class="ActionScriptDefault_Text">IOErrorEvent</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">msg</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"IO Error "</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">e</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptString">" check to make sure the socket server is running."</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + + <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">dataHandler</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">e</span>:<span class="ActionScriptDefault_Text">ProgressEvent</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">msg</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"Data Received - total bytes "</span> <span class="ActionScriptOperator">+</span><span class="ActionScriptDefault_Text">e</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">bytesTotal</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptString">" "</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">bytes</span>:<span class="ActionScriptDefault_Text">ByteArray</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">ByteArray</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">socket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">readBytes</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">bytes</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">msg</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"Bytes received "</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">bytes</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScripttrace">trace</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">bytes</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + <span class="ActionScriptBracket/Brace">}</span> +<span class="ActionScriptBracket/Brace">}</span> +</pre></body> +</html>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e1f9d1df/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/SocketClientSample.mxml.html ---------------------------------------------------------------------- diff --git a/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/SocketClientSample.mxml.html b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/SocketClientSample.mxml.html new file mode 100644 index 0000000..b1c6efd --- /dev/null +++ b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/SocketClientSample.mxml.html @@ -0,0 +1,95 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<!-- saved from url=(0014)about:internet --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> +<title>SocketClientSample.mxml</title> +<link rel="stylesheet" type="text/css" href="../SourceStyles.css"/> +</head> + +<body><pre><span class="MXMLProcessing_Instruction"><?xml version="1.0" encoding="utf-8"?></span> +<span class="MXMLComponent_Tag"><s:WindowedApplication</span><span class="MXMLDefault_Text"> xmlns:fx="</span><span class="MXMLString">http://ns.adobe.com/mxml/2009</span><span class="MXMLDefault_Text">" + xmlns:s="</span><span class="MXMLString">library://ns.adobe.com/flex/spark</span><span class="MXMLDefault_Text">" + xmlns:mx="</span><span class="MXMLString">library://ns.adobe.com/flex/mx</span><span class="MXMLDefault_Text">" + styleName="</span><span class="MXMLString">plain</span><span class="MXMLDefault_Text">" width="</span><span class="MXMLString">100%</span><span class="MXMLDefault_Text">" height="</span><span class="MXMLString">100%</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">></span> + + <span class="MXMLSpecial_Tag"><fx:Script></span> + <![CDATA[ + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">utils</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ByteArray</span>; + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">mx</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">controls</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">Alert</span>; + + <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">client</span>:<span class="ActionScriptDefault_Text">SocketClient</span>; <span class="ActionScriptComment">// source code included in SocketClient.as +</span> + <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">connect</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">client</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">SocketClient</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">server</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">int</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">port</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">log</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + + <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">sendBytes</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">bytes</span>:<span class="ActionScriptDefault_Text">ByteArray</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">ByteArray</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">bytes</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">writeUTFBytes</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">command</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptString">"\n"</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">client</span> <span class="ActionScriptOperator">!=</span> <span class="ActionScriptReserved">null</span><span class="ActionScriptBracket/Brace">)</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScripttrace">trace</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"Writing to socket"</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">client</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">writeToSocket</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">bytes</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + <span class="ActionScriptReserved">else</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">connect</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">sendBytes</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + <span class="ActionScriptDefault_Text">command</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptString">""</span>; + + <span class="ActionScriptBracket/Brace">}</span> + <span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptOperator">></span> + <span class="MXMLSpecial_Tag"></fx:Script></span> + + <span class="MXMLComponent_Tag"><s:VGroup</span><span class="MXMLDefault_Text"> paddingLeft="</span><span class="MXMLString">6</span><span class="MXMLDefault_Text">" paddingTop="</span><span class="MXMLString">6</span><span class="MXMLDefault_Text">" paddingBottom="</span><span class="MXMLString">6</span><span class="MXMLDefault_Text">" paddingRight="</span><span class="MXMLString">6</span><span class="MXMLDefault_Text">" width="</span><span class="MXMLString">100%</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">></span> + <span class="MXMLComponent_Tag"><s:HGroup</span><span class="MXMLDefault_Text"> left="</span><span class="MXMLString">8</span><span class="MXMLDefault_Text">" top="</span><span class="MXMLString">5</span><span class="MXMLDefault_Text">" verticalAlign="</span><span class="MXMLString">middle</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">></span> + <span class="MXMLComponent_Tag"><s:Label</span><span class="MXMLDefault_Text"> text="</span><span class="MXMLString">Server:</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/></span> + <span class="MXMLComponent_Tag"><s:TextInput</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">server</span><span class="MXMLDefault_Text">" text="</span><span class="MXMLString">localhost</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/></span> + <span class="MXMLComponent_Tag"><s:Label</span><span class="MXMLDefault_Text"> text="</span><span class="MXMLString">Port #:</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/></span> + <span class="MXMLComponent_Tag"><s:TextInput</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">port</span><span class="MXMLDefault_Text">" text="</span><span class="MXMLString">1235</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/></span> + <span class="MXMLComponent_Tag"><s:Button</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">go</span><span class="MXMLDefault_Text">" label="</span><span class="MXMLString">Connect</span><span class="MXMLDefault_Text">" click="</span><span class="ActionScriptDefault_Text">connect</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/></span> + <span class="MXMLComponent_Tag"><s:Button</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">closeSocket</span><span class="MXMLDefault_Text">" label="</span><span class="MXMLString">Disconnect</span><span class="MXMLDefault_Text">" click="</span><span class="ActionScriptDefault_Text">client</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">closeSocket</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/></span> + <span class="MXMLComponent_Tag"></s:HGroup></span> + + <span class="MXMLComponent_Tag"><s:VGroup</span><span class="MXMLDefault_Text"> left="</span><span class="MXMLString">8</span><span class="MXMLDefault_Text">" top="</span><span class="MXMLString">40</span><span class="MXMLDefault_Text">" horizontalAlign="</span><span class="MXMLString">left</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">></span> + <span class="MXMLComponent_Tag"><s:Label</span><span class="MXMLDefault_Text"> text="</span><span class="MXMLString">Enter text to send to the socket server and press send:</span><span class="MXMLDefault_Text">" fontSize="</span><span class="MXMLString">12</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/></span> + <span class="MXMLComponent_Tag"><s:HGroup></span> + <span class="MXMLComponent_Tag"><s:TextInput</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">command</span><span class="MXMLDefault_Text">" width="</span><span class="MXMLString">300</span><span class="MXMLDefault_Text">" enter="</span><span class="ActionScriptDefault_Text">sendBytes</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/></span> + <span class="MXMLComponent_Tag"><s:Button</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">send</span><span class="MXMLDefault_Text">" label="</span><span class="MXMLString">Send</span><span class="MXMLDefault_Text">" click="</span><span class="ActionScriptDefault_Text">sendBytes</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/></span> + <span class="MXMLComponent_Tag"></s:HGroup></span> + <span class="MXMLComponent_Tag"></s:VGroup></span> + + <span class="MXMLComponent_Tag"><s:Label</span><span class="MXMLDefault_Text"> width="</span><span class="MXMLString">100%</span><span class="MXMLDefault_Text">" verticalAlign="</span><span class="MXMLString">justify</span><span class="MXMLDefault_Text">" color="</span><span class="MXMLString">#323232</span><span class="MXMLDefault_Text">" bottom="</span><span class="MXMLString">9</span><span class="MXMLDefault_Text">" horizontalCenter="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" + text="</span><span class="MXMLString">The ServerSocket class allows code to act as a server for Transport Control Protocol (TCP) connections. A TCP server +listens for incoming connections from remote clients. When a client attempts to connect, the ServerSocket dispatches a connect event. Run +the SocketServerSample application first and click 'Listen' to start listening on the server and port information above. When data is sent +from the client it will show up in the log running the socket server app.</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/></span> + + <span class="MXMLComponent_Tag"><s:VGroup</span><span class="MXMLDefault_Text"> top="</span><span class="MXMLString">88</span><span class="MXMLDefault_Text">" left="</span><span class="MXMLString">8</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">></span> + <span class="MXMLComponent_Tag"><s:Label</span><span class="MXMLDefault_Text"> text="</span><span class="MXMLString">Console:</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/></span> + <span class="MXMLComponent_Tag"><s:TextArea</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">log</span><span class="MXMLDefault_Text">" width="</span><span class="MXMLString">600</span><span class="MXMLDefault_Text">" height="</span><span class="MXMLString">70</span><span class="MXMLDefault_Text">" editable="</span><span class="MXMLString">false</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/></span> + <span class="MXMLComponent_Tag"></s:VGroup></span> + <span class="MXMLComponent_Tag"></s:VGroup></span> + +<span class="MXMLComponent_Tag"></s:WindowedApplication></span></pre></body> +</html> http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e1f9d1df/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/SocketServerSample.mxml.html ---------------------------------------------------------------------- diff --git a/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/SocketServerSample.mxml.html b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/SocketServerSample.mxml.html new file mode 100644 index 0000000..c7eed0f --- /dev/null +++ b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/SocketServerSample.mxml.html @@ -0,0 +1,116 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<!-- saved from url=(0014)about:internet --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> +<title>SocketServerSample.mxml</title> +<link rel="stylesheet" type="text/css" href="../SourceStyles.css"/> +</head> + +<body><pre><span class="MXMLProcessing_Instruction"><?xml version="1.0" encoding="utf-8"?></span> +<span class="MXMLComponent_Tag"><s:WindowedApplication</span><span class="MXMLDefault_Text"> xmlns:fx="</span><span class="MXMLString">http://ns.adobe.com/mxml/2009</span><span class="MXMLDefault_Text">" + xmlns:s="</span><span class="MXMLString">library://ns.adobe.com/flex/spark</span><span class="MXMLDefault_Text">" + xmlns:mx="</span><span class="MXMLString">library://ns.adobe.com/flex/mx</span><span class="MXMLDefault_Text">" + styleName="</span><span class="MXMLString">plain</span><span class="MXMLDefault_Text">" width="</span><span class="MXMLString">100%</span><span class="MXMLDefault_Text">" height="</span><span class="MXMLString">100%</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">></span> + + <span class="MXMLSpecial_Tag"><fx:Script></span> + <![CDATA[ + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">events</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">Event</span>; + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">events</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">MouseEvent</span>; + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">events</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ProgressEvent</span>; + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">events</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ServerSocketConnectEvent</span>; + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">net</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ServerSocket</span>; + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">net</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">Socket</span>; + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">utils</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ByteArray</span>; + + <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">mx</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">controls</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">Alert</span>; + + <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">serverSocket</span>:<span class="ActionScriptDefault_Text">ServerSocket</span>; + + <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">listen</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptReserved">try</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">serverSocket</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">ServerSocket</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">serverSocket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addEventListener</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">Event</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">CONNECT</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">socketConnectHandler</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">serverSocket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addEventListener</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">Event</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">CLOSE</span><span class="ActionScriptOperator">,</span><span class="ActionScriptDefault_Text">socketCloseHandler</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">serverSocket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">bind</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">port</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">serverSocket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">listen</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">log</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span> <span class="ActionScriptOperator">+=</span> <span class="ActionScriptString">"Listening on port "</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">port</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptString">"...\n"</span>; + <span class="ActionScriptBracket/Brace">}</span> + <span class="ActionScriptReserved">catch</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">error</span>:<span class="ActionScriptDefault_Text">Error</span><span class="ActionScriptBracket/Brace">)</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">Alert</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">show</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"Port "</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">port</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptString">" may be in use. Enter another port number and try again.\n("</span> <span class="ActionScriptOperator">+</span> + <span class="ActionScriptDefault_Text">error</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">message</span> <span class="ActionScriptOperator">+</span><span class="ActionScriptString">")"</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptString">"Error"</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + <span class="ActionScriptBracket/Brace">}</span> + + <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">socketConnectHandler</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span>:<span class="ActionScriptDefault_Text">ServerSocketConnectEvent</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">socket</span>:<span class="ActionScriptDefault_Text">Socket</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">event</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">socket</span>; + <span class="ActionScriptDefault_Text">socket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addEventListener</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">ProgressEvent</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">SOCKET_DATA</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">socketDataHandler</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + + <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">socketDataHandler</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span>:<span class="ActionScriptDefault_Text">ProgressEvent</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptReserved">try</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">socket</span>:<span class="ActionScriptDefault_Text">Socket</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">event</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">target</span> <span class="ActionScriptReserved">as</span> <span class="ActionScriptDefault_Text">Socket</span>; + <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">bytes</span>:<span class="ActionScriptDefault_Text">ByteArray</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">ByteArray</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">socket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">readBytes</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">bytes</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptDefault_Text">log</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span> <span class="ActionScriptOperator">+=</span> <span class="ActionScriptString">""</span><span class="ActionScriptOperator">+</span><span class="ActionScriptDefault_Text">bytes</span>; + <span class="ActionScriptDefault_Text">socket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">flush</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + <span class="ActionScriptReserved">catch</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">error</span>:<span class="ActionScriptDefault_Text">Error</span><span class="ActionScriptBracket/Brace">)</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">Alert</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">show</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">error</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">message</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptString">"Error"</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + <span class="ActionScriptBracket/Brace">}</span> + + <span class="ActionScriptReserved">protected</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">buttonClose_clickHandler</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span>:<span class="ActionScriptDefault_Text">MouseEvent</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptReserved">try</span> <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">serverSocket</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">close</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + <span class="ActionScriptReserved">catch</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">error</span>:<span class="ActionScriptDefault_Text">Error</span><span class="ActionScriptBracket/Brace">)</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">Alert</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">show</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">error</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">message</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptString">"Error on close"</span><span class="ActionScriptBracket/Brace">)</span>; + <span class="ActionScriptBracket/Brace">}</span> + <span class="ActionScriptBracket/Brace">}</span> + <span class="ActionScriptReserved">protected</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">socketCloseHandler</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">e</span>:<span class="ActionScriptDefault_Text">Event</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span> + <span class="ActionScriptBracket/Brace">{</span> + <span class="ActionScriptDefault_Text">log</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span> <span class="ActionScriptOperator">+=</span> <span class="ActionScriptString">"Socket Closed"</span>; + <span class="ActionScriptBracket/Brace">}</span> + + <span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptOperator">></span> + <span class="MXMLSpecial_Tag"></fx:Script></span> + + <span class="MXMLComponent_Tag"><s:VGroup</span><span class="MXMLDefault_Text"> paddingTop="</span><span class="MXMLString">8</span><span class="MXMLDefault_Text">" paddingLeft="</span><span class="MXMLString">8</span><span class="MXMLDefault_Text">" paddingRight="</span><span class="MXMLString">8</span><span class="MXMLDefault_Text">" paddingBottom="</span><span class="MXMLString">8</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">></span> + <span class="MXMLComponent_Tag"><s:HGroup</span><span class="MXMLDefault_Text"> verticalAlign="</span><span class="MXMLString">middle</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">></span> + <span class="MXMLComponent_Tag"><s:Label</span><span class="MXMLDefault_Text"> text="</span><span class="MXMLString">Port:</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/></span> + <span class="MXMLComponent_Tag"><s:TextInput</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">port</span><span class="MXMLDefault_Text">" text="</span><span class="MXMLString">8888</span><span class="MXMLDefault_Text">" width="</span><span class="MXMLString">50</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/></span> + <span class="MXMLComponent_Tag"><s:Button</span><span class="MXMLDefault_Text"> label="</span><span class="MXMLString">Listen</span><span class="MXMLDefault_Text">" click="</span><span class="ActionScriptDefault_Text">listen</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/></span> + <span class="MXMLComponent_Tag"><s:Button</span><span class="MXMLDefault_Text"> label="</span><span class="MXMLString">Close Socket</span><span class="MXMLDefault_Text">" click="</span><span class="ActionScriptDefault_Text">buttonClose_clickHandler</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span><span class="ActionScriptBracket/Brace">)</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/></span> + <span class="MXMLComponent_Tag"></s:HGroup></span> + + <span class="MXMLComponent_Tag"><s:TextArea</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">log</span><span class="MXMLDefault_Text">" width="</span><span class="MXMLString">100%</span><span class="MXMLDefault_Text">" height="</span><span class="MXMLString">100%</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/></span> + <span class="MXMLComponent_Tag"></s:VGroup></span> + +<span class="MXMLComponent_Tag"></s:WindowedApplication></span></pre></body> +</html> http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e1f9d1df/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketClient.as ---------------------------------------------------------------------- diff --git a/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketClient.as b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketClient.as new file mode 100644 index 0000000..4c343b6 --- /dev/null +++ b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketClient.as @@ -0,0 +1,131 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//////////////////////////////////////////////////////////////////////////////// +package { + import flash.events.ErrorEvent; + import flash.events.Event; + import flash.events.IOErrorEvent; + import flash.events.ProgressEvent; + import flash.net.Socket; + import flash.utils.ByteArray; + + import mx.controls.Alert; + + import spark.components.TextArea; + + public class SocketClient + { + private var serverURL:String; + private var portNumber:int; + private var socket:Socket; + private var ta:TextArea; + private var state:int = 0; + + + public function SocketClient(server:String, port:int, output:TextArea) + { + serverURL = server; + portNumber = port; + ta = output; + + socket = new Socket(); + + try + { + msg("Connecting to " + serverURL + ":" + portNumber + "\n"); + socket.connect(serverURL, portNumber); + } + catch (error:Error) + { + msg(error.message + "\n"); + socket.close(); + } + socket.addEventListener(Event.CONNECT, connectHandler); + socket.addEventListener(Event.CLOSE, closeHandler); + socket.addEventListener(ErrorEvent.ERROR, errorHandler); + socket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); + socket.addEventListener(ProgressEvent.SOCKET_DATA, dataHandler); + + } + + public function closeSocket():void + { + try { + socket.flush(); + socket.close(); + } + catch (error:Error) + { + msg(error.message); + } + } + + public function writeToSocket(ba:ByteArray):void + { + try { + socket.writeBytes(ba); + socket.flush(); + } + catch (error:Error) + { + msg(error.message); + + } + } + + private function msg(value:String):void + { + ta.text += value+ "\n"; + setScroll(); + } + + public function setScroll():void + { + ta.scrollToRange(ta.y+20); + } + + public function connectHandler(e:Event):void + { + msg("Socket Connected"); + } + + public function closeHandler(e:Event):void + { + msg("Socket Closed"); + } + + public function errorHandler(e:ErrorEvent):void + { + msg("Error " + e.text); + } + + public function ioErrorHandler(e:IOErrorEvent):void + { + msg("IO Error " + e.text + " check to make sure the socket server is running."); + } + + public function dataHandler(e:ProgressEvent):void + { + msg("Data Received - total bytes " +e.bytesTotal + " "); + var bytes:ByteArray = new ByteArray(); + socket.readBytes(bytes); + msg("Bytes received " + bytes); + trace(bytes); + } + } +} http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e1f9d1df/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketClientSample-app.xml ---------------------------------------------------------------------- diff --git a/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketClientSample-app.xml b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketClientSample-app.xml new file mode 100755 index 0000000..8f46d6f --- /dev/null +++ b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketClientSample-app.xml @@ -0,0 +1,156 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!-- + +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You under the Apache License, Version 2.0 +(the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +--> +<application xmlns="http://ns.adobe.com/air/application/2.0"> + +<!-- Adobe AIR Application Descriptor File Template. + + Specifies parameters for identifying, installing, and launching AIR applications. + + xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/2.0beta2 + The last segment of the namespace specifies the version + of the AIR runtime required for this application to run. + + minimumPatchLevel - The minimum patch level of the AIR runtime required to run + the application. Optional. +--> + + <!-- The application identifier string, unique to this application. Required. --> + <id>SocketClientSample</id> + + <!-- Used as the filename for the application. Required. --> + <filename>SocketClientSample</filename> + + <!-- The name that is displayed in the AIR application installer. + May have multiple values for each language. See samples or xsd schema file. Optional. --> + <name>SocketClientSample</name> + + <!-- An application version designator (such as "v1", "2.5", or "Alpha 1"). Required. --> + <version>v1</version> + + <!-- Description, displayed in the AIR application installer. + May have multiple values for each language. See samples or xsd schema file. Optional. --> + <!-- <description></description> --> + + <!-- Copyright information. Optional --> + <!-- <copyright></copyright> --> + + <!-- Publisher ID. Used if you're updating an application created prior to 1.5.3 --> + <!-- <publisherID></publisherID> --> + + <!-- Settings for the application's initial window. Required. --> + <initialWindow> + <!-- The main SWF or HTML file of the application. Required. --> + <!-- Note: In Flash Builder, the SWF reference is set automatically. --> + <content>[This value will be overwritten by Flash Builder in the output app.xml]</content> + + <!-- The title of the main window. Optional. --> + <!-- <title></title> --> + + <!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. --> + <!-- <systemChrome></systemChrome> --> + + <!-- Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. --> + <!-- <transparent></transparent> --> + + <!-- Whether the window is initially visible. Optional. Default false. --> + <!-- <visible></visible> --> + + <!-- Whether the user can minimize the window. Optional. Default true. --> + <!-- <minimizable></minimizable> --> + + <!-- Whether the user can maximize the window. Optional. Default true. --> + <!-- <maximizable></maximizable> --> + + <!-- Whether the user can resize the window. Optional. Default true. --> + <!-- <resizable></resizable> --> + + <!-- The window's initial width in pixels. Optional. --> + <!-- <width></width> --> + + <!-- The window's initial height in pixels. Optional. --> + <!-- <height></height> --> + + <!-- The window's initial x position. Optional. --> + <!-- <x></x> --> + + <!-- The window's initial y position. Optional. --> + <!-- <y></y> --> + + <!-- The window's minimum size, specified as a width/height pair in pixels, such as "400 200". Optional. --> + <!-- <minSize></minSize> --> + + <!-- The window's initial maximum size, specified as a width/height pair in pixels, such as "1600 1200". Optional. --> + <!-- <maxSize></maxSize> --> + </initialWindow> + + <!-- The subpath of the standard default installation location to use. Optional. --> + <!-- <installFolder></installFolder> --> + + <!-- The subpath of the Programs menu to use. (Ignored on operating systems without a Programs menu.) Optional. --> + <!-- <programMenuFolder></programMenuFolder> --> + + <!-- The icon the system uses for the application. For at least one resolution, + specify the path to a PNG file included in the AIR package. Optional. --> + <!-- <icon> + <image16x16></image16x16> + <image32x32></image32x32> + <image48x48></image48x48> + <image128x128></image128x128> + </icon> --> + + <!-- Whether the application handles the update when a user double-clicks an update version + of the AIR file (true), or the default AIR application installer handles the update (false). + Optional. Default false. --> + <!-- <customUpdateUI></customUpdateUI> --> + + <!-- Whether the application can be launched when the user clicks a link in a web browser. + Optional. Default false. --> + <!-- <allowBrowserInvocation></allowBrowserInvocation> --> + + <!-- Listing of file types for which the application can register. Optional. --> + <!-- <fileTypes> --> + + <!-- Defines one file type. Optional. --> + <!-- <fileType> --> + + <!-- The name that the system displays for the registered file type. Required. --> + <!-- <name></name> --> + + <!-- The extension to register. Required. --> + <!-- <extension></extension> --> + + <!-- The description of the file type. Optional. --> + <!-- <description></description> --> + + <!-- The MIME content type. --> + <!-- <contentType></contentType> --> + + <!-- The icon to display for the file type. Optional. --> + <!-- <icon> + <image16x16></image16x16> + <image32x32></image32x32> + <image48x48></image48x48> + <image128x128></image128x128> + </icon> --> + + <!-- </fileType> --> + <!-- </fileTypes> --> + +</application> http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e1f9d1df/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketClientSample.mxml ---------------------------------------------------------------------- diff --git a/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketClientSample.mxml b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketClientSample.mxml new file mode 100644 index 0000000..7f35bc5 --- /dev/null +++ b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketClientSample.mxml @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +--> +<mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:s="library://ns.adobe.com/flex/spark" + xmlns:mx="library://ns.adobe.com/flex/mx" + styleName="plain" width="100%" height="100%"> + + <fx:Script> + <![CDATA[ + import flash.utils.ByteArray; + import mx.controls.Alert; + + private var client:SocketClient; // source code included in SocketClient.as + + private function connect():void + { + client = new SocketClient(server.text, int(port.text), log); + } + + private function sendBytes():void + { + var bytes:ByteArray = new ByteArray(); + bytes.writeUTFBytes(command.text + "\n"); + if (client != null) + { + trace("Writing to socket"); + client.writeToSocket(bytes); + } + else + { + + connect(); + sendBytes(); + } + command.text = ""; + + } + ]]> + </fx:Script> + + <s:VGroup paddingLeft="6" paddingTop="6" paddingBottom="6" paddingRight="6"> + <s:HGroup left="8" top="5" verticalAlign="middle"> + <s:Label text="Server:"/> + <s:TextInput id="server" text="localhost"/> + <s:Label text="Port #:"/> + <s:TextInput id="port" text="1235"/> + <s:Button id="go" label="Connect" click="connect()"/> + <s:Button id="closeSocket" label="Disconnect" click="client.closeSocket()"/> + </s:HGroup> + + <s:VGroup left="8" top="40" > + <s:Label text="Enter text to send to the socket server and press send:" fontSize="12"/> + <s:HGroup> + <s:TextInput id="command" width="300" enter="sendBytes()"/> + <s:Button id="send" label="Send" click="sendBytes()"/> + </s:HGroup> + </s:VGroup> + + <s:Label width="500" verticalAlign="justify" color="#323232" bottom="9" horizontalCenter="0" + text="The ServerSocket class allows code to act as a server for Transport Control Protocol (TCP) connections. A TCP server +listens for incoming connections from remote clients. When a client attempts to connect, the ServerSocket dispatches a connect event. Run +the SocketServerSample application first and click 'Listen' to start listening on the server and port information above. When data is sent +from the client it will show up in the log running the socket server app."/> + + <s:VGroup top="88" left="8"> + <s:Label text="Console:"/> + <s:TextArea id="log" width="500" height="100" editable="false"/> + </s:VGroup> + </s:VGroup> + + + +</mx:Module> http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e1f9d1df/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketServerSample-app.xml ---------------------------------------------------------------------- diff --git a/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketServerSample-app.xml b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketServerSample-app.xml new file mode 100755 index 0000000..1767950 --- /dev/null +++ b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketServerSample-app.xml @@ -0,0 +1,153 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!-- + +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You under the Apache License, Version 2.0 +(the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +--> +<application xmlns="http://ns.adobe.com/air/application/2.0"> + +<!-- Adobe AIR Application Descriptor File Template. + + Specifies parameters for identifying, installing, and launching AIR applications. + + xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/2.0beta + The last segment of the namespace specifies the version + of the AIR runtime required for this application to run. + + minimumPatchLevel - The minimum patch level of the AIR runtime required to run + the application. Optional. +--> + + <!-- The application identifier string, unique to this application. Required. --> + <id>SocketServerSample</id> + + <!-- Used as the filename for the application. Required. --> + <filename>SocketServerSample</filename> + + <!-- The name that is displayed in the AIR application installer. + May have multiple values for each language. See samples or xsd schema file. Optional. --> + <name>SocketServerSample</name> + + <!-- An application version designator (such as "v1", "2.5", or "Alpha 1"). Required. --> + <version>v1</version> + + <!-- Description, displayed in the AIR application installer. + May have multiple values for each language. See samples or xsd schema file. Optional. --> + <!-- <description></description> --> + + <!-- Copyright information. Optional --> + <!-- <copyright></copyright> --> + + <!-- Settings for the application's initial window. Required. --> + <initialWindow> + <!-- The main SWF or HTML file of the application. Required. --> + <!-- Note: In Flash Builder, the SWF reference is set automatically. --> + <content>[This value will be overwritten by Flash Builder in the output app.xml]</content> + + <!-- The title of the main window. Optional. --> + <!-- <title></title> --> + + <!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. --> + <!-- <systemChrome></systemChrome> --> + + <!-- Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. --> + <!-- <transparent></transparent> --> + + <!-- Whether the window is initially visible. Optional. Default false. --> + <!-- <visible></visible> --> + + <!-- Whether the user can minimize the window. Optional. Default true. --> + <!-- <minimizable></minimizable> --> + + <!-- Whether the user can maximize the window. Optional. Default true. --> + <!-- <maximizable></maximizable> --> + + <!-- Whether the user can resize the window. Optional. Default true. --> + <!-- <resizable></resizable> --> + + <!-- The window's initial width in pixels. Optional. --> + <!-- <width></width> --> + + <!-- The window's initial height in pixels. Optional. --> + <!-- <height></height> --> + + <!-- The window's initial x position. Optional. --> + <!-- <x></x> --> + + <!-- The window's initial y position. Optional. --> + <!-- <y></y> --> + + <!-- The window's minimum size, specified as a width/height pair in pixels, such as "400 200". Optional. --> + <!-- <minSize></minSize> --> + + <!-- The window's initial maximum size, specified as a width/height pair in pixels, such as "1600 1200". Optional. --> + <!-- <maxSize></maxSize> --> + </initialWindow> + + <!-- The subpath of the standard default installation location to use. Optional. --> + <!-- <installFolder></installFolder> --> + + <!-- The subpath of the Programs menu to use. (Ignored on operating systems without a Programs menu.) Optional. --> + <!-- <programMenuFolder></programMenuFolder> --> + + <!-- The icon the system uses for the application. For at least one resolution, + specify the path to a PNG file included in the AIR package. Optional. --> + <!-- <icon> + <image16x16></image16x16> + <image32x32></image32x32> + <image48x48></image48x48> + <image128x128></image128x128> + </icon> --> + + <!-- Whether the application handles the update when a user double-clicks an update version + of the AIR file (true), or the default AIR application installer handles the update (false). + Optional. Default false. --> + <!-- <customUpdateUI></customUpdateUI> --> + + <!-- Whether the application can be launched when the user clicks a link in a web browser. + Optional. Default false. --> + <!-- <allowBrowserInvocation></allowBrowserInvocation> --> + + <!-- Listing of file types for which the application can register. Optional. --> + <!-- <fileTypes> --> + + <!-- Defines one file type. Optional. --> + <!-- <fileType> --> + + <!-- The name that the system displays for the registered file type. Required. --> + <!-- <name></name> --> + + <!-- The extension to register. Required. --> + <!-- <extension></extension> --> + + <!-- The description of the file type. Optional. --> + <!-- <description></description> --> + + <!-- The MIME content type. --> + <!-- <contentType></contentType> --> + + <!-- The icon to display for the file type. Optional. --> + <!-- <icon> + <image16x16></image16x16> + <image32x32></image32x32> + <image48x48></image48x48> + <image128x128></image128x128> + </icon> --> + + <!-- </fileType> --> + <!-- </fileTypes> --> + +</application> http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e1f9d1df/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketServerSample.mxml ---------------------------------------------------------------------- diff --git a/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketServerSample.mxml b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketServerSample.mxml new file mode 100644 index 0000000..d9f24da --- /dev/null +++ b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/Sample-AIR2-SocketServer/src/SocketServerSample.mxml @@ -0,0 +1,111 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +--> +<mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:s="library://ns.adobe.com/flex/spark" + xmlns:mx="library://ns.adobe.com/flex/mx" + width="100%" height="100%" styleName="plain"> + + <fx:Script> + <![CDATA[ + import flash.events.Event; + import flash.events.MouseEvent; + import flash.events.ProgressEvent; + import flash.events.ServerSocketConnectEvent; + import flash.net.ServerSocket; + import flash.net.Socket; + import flash.utils.ByteArray; + + import mx.controls.Alert; + + private var serverSocket:ServerSocket; + + private function listen():void + { + try + { + serverSocket = new ServerSocket(); + serverSocket.addEventListener(Event.CONNECT, socketConnectHandler); + serverSocket.addEventListener(Event.CLOSE,socketCloseHandler); + serverSocket.bind(Number(port.text)); + serverSocket.listen(); + log.text += "Listening on port " + port.text + "...\n"; + + } + catch (error:Error) + { + Alert.show("Port " + port.text + " may be in use. Enter another port number and try again.\n(" + + error.message +")", "Error"); + } + } + + private function socketConnectHandler(event:ServerSocketConnectEvent):void + { + var socket:Socket = event.socket; + log.text += "Socket connection established on port " + port.text + "...\n"; + socket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler); + } + + private function socketDataHandler(event:ProgressEvent):void + { + try + { + var socket:Socket = event.target as Socket; + var bytes:ByteArray = new ByteArray(); + socket.readBytes(bytes); + log.text += ""+bytes; + socket.flush(); + } + catch (error:Error) + { + Alert.show(error.message, "Error"); + } + } + + protected function buttonClose_clickHandler(event:MouseEvent):void + { + try { + serverSocket.close(); + } + catch (error:Error) + { + Alert.show(error.message, "Error on close"); + } + } + protected function socketCloseHandler(e:Event):void + { + log.text += "Socket Closed"; + } + + ]]> + </fx:Script> + + <s:VGroup paddingTop="8" paddingLeft="8" paddingRight="8" paddingBottom="8"> + <s:Label text="Start listening over a socket connection by clicking the listen button."/> + <s:HGroup verticalAlign="middle"> + <s:Label text="Port:"/> + <s:TextInput id="port" text="1235" width="50"/> + <s:Button label="Listen" click="listen()"/> + <s:Button label="Close Socket" click="buttonClose_clickHandler(event)"/> + </s:HGroup> + + <s:TextArea id="log" width="100%" height="100%" /> + </s:VGroup> + +</mx:Module> http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e1f9d1df/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/SourceIndex.xml ---------------------------------------------------------------------- diff --git a/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/SourceIndex.xml b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/SourceIndex.xml new file mode 100644 index 0000000..d132844 --- /dev/null +++ b/TourDeFlex/TourDeFlex/src/objects/AIR20/SocketServer/srcview/SourceIndex.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +--> +<index> + <title>Source of Sample-AIR2-SocketServer</title> + <nodes> + <node label="libs"> + </node> + <node label="src"> + <node icon="actionScriptIcon" label="SocketClient.as" url="source/SocketClient.as.html"/> + <node label="SocketClientSample-app.xml" url="source/SocketClientSample-app.xml.txt"/> + <node icon="mxmlIcon" label="SocketClientSample.mxml" url="source/SocketClientSample.mxml.html"/> + <node label="SocketServerSample-app.xml" url="source/SocketServerSample-app.xml.txt"/> + <node icon="mxmlAppIcon" selected="true" label="SocketServerSample.mxml" url="source/SocketServerSample.mxml.html"/> + </node> + </nodes> + <zipfile label="Download source (ZIP, 9K)" url="Sample-AIR2-SocketServer.zip"> + </zipfile> + <sdklink label="Download Flex SDK" url="http://www.adobe.com/go/flex4_sdk_download"> + </sdklink> +</index>