高傲的活着 发表于 2011-12-22 08:54

Flex和java的socket通信

<DIV><FONT color=#f00000>一个简单的聊天室</FONT></DIV>
<DIV><FONT color=#0000f0></FONT>&nbsp;</DIV>
<DIV><FONT color=#0000f0>服务端</FONT>:</DIV>
<DIV><FONT color=#f00000>开发工具:</FONT></DIV>
<DIV>eclipse3.6+jdk1.6<BR>  </DIV>
<DIV><FONT color=#0000f0>客户端</FONT>:</DIV>
<DIV><FONT color=#f00000>开发工具:</FONT>Flash Builder4  </DIV>
<DIV><FONT color=#f000f0>目的:做一个简单的聊天室,用来实现消息广播。</FONT></DIV>
<P><FONT color=#f000f0>服务端代码(Server.java)</FONT></P>
<DIV id=codeText class=codeText>
<OL style="PADDING-BOTTOM: 5px; MARGIN: 0px 1px 0px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 5px" class=dp-css>
<LI><SPAN style="COLOR: #000000"><SPAN style="COLOR: #ff0000">import</SPAN> java<SPAN style="COLOR: #0000cc">.</SPAN>net<SPAN style="COLOR: #0000cc">.</SPAN><SPAN style="COLOR: #0000cc">*</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI><SPAN style="COLOR: #ff0000">import</SPAN> java<SPAN style="COLOR: #0000cc">.</SPAN>io<SPAN style="COLOR: #0000cc">.</SPAN><SPAN style="COLOR: #0000cc">*</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI><SPAN style="COLOR: #ff0000">import</SPAN> java<SPAN style="COLOR: #0000cc">.</SPAN>util<SPAN style="COLOR: #0000cc">.</SPAN><SPAN style="COLOR: #0000cc">*</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>public <SPAN style="COLOR: #ff0000">class</SPAN> <SPAN style="COLOR: #0000ff">Server</SPAN> <SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;private ServerSocket <SPAN style="COLOR: #0000ff">server</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;private BManager bMan<SPAN style="COLOR: #0000cc">=</SPAN>new BManager<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>消息广播者<BR></LI>
<LI><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;public <SPAN style="COLOR: #0000ff">Server</SPAN><SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">{</SPAN><SPAN style="COLOR: #0000cc">}</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>构造函数<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;void startServer<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">{</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>启动服务器<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000ff">server</SPAN><SPAN style="COLOR: #0000cc">=</SPAN>new ServerSocket<SPAN style="COLOR: #0000cc">(</SPAN>8888<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>创建服务器套接字<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System<SPAN style="COLOR: #0000cc">.</SPAN>out<SPAN style="COLOR: #0000cc">.</SPAN>println<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #ff00ff">"服务器套接字建立完毕!"</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while<SPAN style="COLOR: #0000cc">(</SPAN>true<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Socket socket<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #0000ff">server</SPAN><SPAN style="COLOR: #0000cc">.</SPAN><SPAN style="COLOR: #ff0000">accept</SPAN><SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>若客户机提出请求,socket连接<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new Chat_Thread<SPAN style="COLOR: #0000cc">(</SPAN>socket<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">.</SPAN><SPAN style="COLOR: #ff0000">start</SPAN><SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>启动线程<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bMan<SPAN style="COLOR: #0000cc">.</SPAN>add<SPAN style="COLOR: #0000cc">(</SPAN>socket<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>添加套接字<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bMan<SPAN style="COLOR: #0000cc">.</SPAN>sendClientInfo<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>使用套接字输出当前聊天人数<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN>catch<SPAN style="COLOR: #0000cc">(</SPAN>Exception e<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System<SPAN style="COLOR: #0000cc">.</SPAN>out<SPAN style="COLOR: #0000cc">.</SPAN>println<SPAN style="COLOR: #0000cc">(</SPAN>e<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;public static void main<SPAN style="COLOR: #0000cc">(</SPAN>String<SPAN style="COLOR: #0000cc">[</SPAN><SPAN style="COLOR: #0000cc">]</SPAN> args<SPAN style="COLOR: #0000cc">)</SPAN> <SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000ff">Server</SPAN> <SPAN style="COLOR: #0000ff">server</SPAN><SPAN style="COLOR: #0000cc">=</SPAN>new <SPAN style="COLOR: #0000ff">Server</SPAN><SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN> <BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000ff">server</SPAN><SPAN style="COLOR: #0000cc">.</SPAN>startServer<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI><SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI><BR></LI>
<LI><SPAN style="COLOR: #ff0000">class</SPAN> Chat_Thread <SPAN style="COLOR: #ff0000">extends</SPAN> Thread<SPAN style="COLOR: #0000cc">{</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>与客户机进行通信的线程类<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;Socket socket<SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>套接字引用变量<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;BManager bMan<SPAN style="COLOR: #0000cc">=</SPAN>new BManager<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;private BufferedReader reader<SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>引用套接字输入流<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;private PrintWriter writer<SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>引用套接字输出流<BR></LI>
<LI><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;Chat_Thread<SPAN style="COLOR: #0000cc">(</SPAN>Socket socket<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this<SPAN style="COLOR: #0000cc">.</SPAN>socket<SPAN style="COLOR: #0000cc">=</SPAN>socket<SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;public void run<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader<SPAN style="COLOR: #0000cc">=</SPAN>new BufferedReader<SPAN style="COLOR: #0000cc">(</SPAN>new InputStreamReader<SPAN style="COLOR: #0000cc">(</SPAN>socket<SPAN style="COLOR: #0000cc">.</SPAN>getInputStream<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">,</SPAN><SPAN style="COLOR: #ff00ff">"utf8"</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer<SPAN style="COLOR: #0000cc">=</SPAN>new PrintWriter<SPAN style="COLOR: #0000cc">(</SPAN>socket<SPAN style="COLOR: #0000cc">.</SPAN>getOutputStream<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">,</SPAN>true<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String msg <SPAN style="COLOR: #0000cc">=</SPAN> null<SPAN style="COLOR: #0000cc">;</SPAN> <BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>从输出流获取消息<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">(</SPAN>reader<SPAN style="COLOR: #0000cc">.</SPAN>readLine<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">!</SPAN><SPAN style="COLOR: #0000cc">=</SPAN>null<SPAN style="COLOR: #0000cc">)</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System<SPAN style="COLOR: #0000cc">.</SPAN>out<SPAN style="COLOR: #0000cc">.</SPAN>println<SPAN style="COLOR: #0000cc">(</SPAN>msg<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bMan<SPAN style="COLOR: #0000cc">.</SPAN>sendToAll<SPAN style="COLOR: #0000cc">(</SPAN>msg<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch<SPAN style="COLOR: #0000cc">(</SPAN>Exception e<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System<SPAN style="COLOR: #0000cc">.</SPAN>out<SPAN style="COLOR: #0000cc">.</SPAN>println<SPAN style="COLOR: #0000cc">(</SPAN>e<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN>finally<SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>从消息广播者中删除socket<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bMan<SPAN style="COLOR: #0000cc">.</SPAN>remove<SPAN style="COLOR: #0000cc">(</SPAN>socket<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if<SPAN style="COLOR: #0000cc">(</SPAN>reader <SPAN style="COLOR: #0000cc">!</SPAN><SPAN style="COLOR: #0000cc">=</SPAN>null<SPAN style="COLOR: #0000cc">)</SPAN> reader<SPAN style="COLOR: #0000cc">.</SPAN>close<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if<SPAN style="COLOR: #0000cc">(</SPAN>writer <SPAN style="COLOR: #0000cc">!</SPAN><SPAN style="COLOR: #0000cc">=</SPAN>null<SPAN style="COLOR: #0000cc">)</SPAN> writer<SPAN style="COLOR: #0000cc">.</SPAN>close<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if<SPAN style="COLOR: #0000cc">(</SPAN>socket <SPAN style="COLOR: #0000cc">!</SPAN><SPAN style="COLOR: #0000cc">=</SPAN>null<SPAN style="COLOR: #0000cc">)</SPAN> socket<SPAN style="COLOR: #0000cc">.</SPAN>close<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader<SPAN style="COLOR: #0000cc">=</SPAN>null<SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer<SPAN style="COLOR: #0000cc">=</SPAN>null<SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;socket<SPAN style="COLOR: #0000cc">=</SPAN>null<SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System<SPAN style="COLOR: #0000cc">.</SPAN>out<SPAN style="COLOR: #0000cc">.</SPAN>println<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #ff00ff">"客户机离开"</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>向所有客户机传送当前连接数<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bMan<SPAN style="COLOR: #0000cc">.</SPAN>sendClientInfo<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN> catch <SPAN style="COLOR: #0000cc">(</SPAN>Exception e<SPAN style="COLOR: #0000cc">)</SPAN> <SPAN style="COLOR: #0000cc">{</SPAN><SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI><SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI><BR></LI>
<LI><SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>消息广播者类,继承Vector类<BR></LI>
<LI><SPAN style="COLOR: #ff0000">class</SPAN> BManager <SPAN style="COLOR: #ff0000">extends</SPAN> Vector<SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;BManager<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">{</SPAN><SPAN style="COLOR: #0000cc">}</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>构造函数<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;void add<SPAN style="COLOR: #0000cc">(</SPAN>Socket socket<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super<SPAN style="COLOR: #0000cc">.</SPAN>add<SPAN style="COLOR: #0000cc">(</SPAN>socket<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>添加套接字<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;void remove<SPAN style="COLOR: #0000cc">(</SPAN>Socket socket<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super<SPAN style="COLOR: #0000cc">.</SPAN>remove<SPAN style="COLOR: #0000cc">(</SPAN>socket<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>删除套接字<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>向所有客户机传送消息,同步化方法<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;synchronized void sendToAll<SPAN style="COLOR: #0000cc">(</SPAN>String msg<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintWriter writer<SPAN style="COLOR: #0000cc">=</SPAN>null<SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>输出流<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Socket socket<SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>套接字<BR></LI>
<LI><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #ff0000">for</SPAN><SPAN style="COLOR: #0000cc">(</SPAN>int <SPAN style="COLOR: #0000ff">i</SPAN><SPAN style="COLOR: #0000cc">=</SPAN>0<SPAN style="COLOR: #0000cc">;</SPAN><SPAN style="COLOR: #0000ff">i</SPAN><SPAN style="COLOR: #0000cc">&lt;</SPAN><SPAN style="COLOR: #ff0000">size</SPAN><SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><SPAN style="COLOR: #0000ff">i</SPAN><SPAN style="COLOR: #0000cc">+</SPAN><SPAN style="COLOR: #0000cc">+</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">{</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>执行循环<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;socket<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #0000cc">(</SPAN>Socket<SPAN style="COLOR: #0000cc">)</SPAN>elementAt<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000ff">i</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>获取第i个套接字<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>获取第i个套接字输出流<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer<SPAN style="COLOR: #0000cc">=</SPAN>new PrintWriter<SPAN style="COLOR: #0000cc">(</SPAN>socket<SPAN style="COLOR: #0000cc">.</SPAN>getOutputStream<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">,</SPAN>true<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN>catch<SPAN style="COLOR: #0000cc">(</SPAN>Exception e<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>使用第i个套接字输出流,输出消息<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if<SPAN style="COLOR: #0000cc">(</SPAN>writer!=null<SPAN style="COLOR: #0000cc">)</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer<SPAN style="COLOR: #0000cc">.</SPAN>println<SPAN style="COLOR: #0000cc">(</SPAN>msg<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>向所有客户机发送当前聊天人数<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;synchronized void sendClientInfo<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String <SPAN style="COLOR: #ff0000">info</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"当前聊天人数:"</SPAN><SPAN style="COLOR: #0000cc">+</SPAN><SPAN style="COLOR: #ff0000">size</SPAN><SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System<SPAN style="COLOR: #0000cc">.</SPAN>out<SPAN style="COLOR: #0000cc">.</SPAN>println<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #ff0000">info</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI><SPAN style="COLOR: #0000cc">}</SPAN></SPAN></LI></OL></DIV>
<P><FONT color=#f00000>客户端代码:FlexClient.mxml</FONT></P>
<DIV id=codeText class=codeText>
<OL style="PADDING-BOTTOM: 5px; MARGIN: 0px 1px 0px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 5px" class=dp-css>
<LI><SPAN style="COLOR: #000000"><SPAN style="COLOR: #0000cc">&lt;</SPAN><SPAN style="COLOR: #0000cc">?</SPAN>xml <SPAN style="COLOR: #ff0000">version</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"1.0"</SPAN> <SPAN style="COLOR: #ff0000">encoding</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"utf-8"</SPAN><SPAN style="COLOR: #0000cc">?</SPAN><SPAN style="COLOR: #0000cc">&gt;</SPAN><BR></LI>
<LI><SPAN style="COLOR: #0000cc">&lt;</SPAN><SPAN style="COLOR: #0000ff">s</SPAN><SPAN style="COLOR: #0000cc">:</SPAN>Application xmlns<SPAN style="COLOR: #0000cc">:</SPAN>fx<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"http://ns.adobe.com/mxml/2009"</SPAN> <BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns<SPAN style="COLOR: #0000cc">:</SPAN><SPAN style="COLOR: #0000ff">s</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"library://ns.adobe.com/flex/spark"</SPAN> <BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns<SPAN style="COLOR: #0000cc">:</SPAN>mx<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"library://ns.adobe.com/flex/mx"</SPAN> minWidth<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"955"</SPAN> minHeight<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"600"</SPAN> creationComplete<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"initApp()"</SPAN><SPAN style="COLOR: #0000cc">&gt;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">&lt;</SPAN>fx<SPAN style="COLOR: #0000cc">:</SPAN>Declarations<SPAN style="COLOR: #0000cc">&gt;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #ff9900">&lt;!-- 将非可视元素(例如服务、值对象)放在此处 --&gt;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">&lt;</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>fx<SPAN style="COLOR: #0000cc">:</SPAN>Declarations<SPAN style="COLOR: #0000cc">&gt;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">&lt;</SPAN>fx<SPAN style="COLOR: #0000cc">:</SPAN><SPAN style="COLOR: #0000ff">Script</SPAN><SPAN style="COLOR: #0000cc">&gt;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">&lt;</SPAN><SPAN style="COLOR: #0000cc">!</SPAN><SPAN style="COLOR: #0000cc">[</SPAN>CDATA<SPAN style="COLOR: #0000cc">[</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #ff0000">import</SPAN> flash<SPAN style="COLOR: #0000cc">.</SPAN>net<SPAN style="COLOR: #0000cc">.</SPAN>Socket<SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #ff0000">import</SPAN> flash<SPAN style="COLOR: #0000cc">.</SPAN>utils<SPAN style="COLOR: #0000cc">.</SPAN>ByteArray<SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>ByteArray在读取数据时使用<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private <SPAN style="COLOR: #0000ff">var</SPAN> socket<SPAN style="COLOR: #0000cc">:</SPAN>Socket<SPAN style="COLOR: #0000cc">=</SPAN>new Socket<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>定义socket<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;internal function initApp<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">:</SPAN>void<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;socket<SPAN style="COLOR: #0000cc">.</SPAN>connect<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #ff00ff">"127.0.0.1"</SPAN><SPAN style="COLOR: #0000cc">,</SPAN>8888<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>执行连接<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>监听连接成功事件<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;socket<SPAN style="COLOR: #0000cc">.</SPAN>addEventListener<SPAN style="COLOR: #0000cc">(</SPAN>Event<SPAN style="COLOR: #0000cc">.</SPAN>CONNECT<SPAN style="COLOR: #0000cc">,</SPAN>funConnect<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>监听关闭事件<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;socket<SPAN style="COLOR: #0000cc">.</SPAN>addEventListener<SPAN style="COLOR: #0000cc">(</SPAN>Event<SPAN style="COLOR: #0000cc">.</SPAN>CLOSE<SPAN style="COLOR: #0000cc">,</SPAN>funClose<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>监听服务器新消息<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;socket<SPAN style="COLOR: #0000cc">.</SPAN>addEventListener<SPAN style="COLOR: #0000cc">(</SPAN>ProgressEvent<SPAN style="COLOR: #0000cc">.</SPAN>SOCKET_DATA<SPAN style="COLOR: #0000cc">,</SPAN>funSocket<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;internal function funConnect<SPAN style="COLOR: #0000cc">(</SPAN>event<SPAN style="COLOR: #0000cc">:</SPAN>Event<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">:</SPAN>void<SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myText<SPAN style="COLOR: #0000cc">.</SPAN><SPAN style="COLOR: #ff0000">text</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"连接已建立..."</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;internal function funClose<SPAN style="COLOR: #0000cc">(</SPAN>event<SPAN style="COLOR: #0000cc">:</SPAN>Event<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">:</SPAN>void<SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myText<SPAN style="COLOR: #0000cc">.</SPAN><SPAN style="COLOR: #ff0000">text</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"连接已关闭..."</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;internal function sendMessage<SPAN style="COLOR: #0000cc">(</SPAN>msg<SPAN style="COLOR: #0000cc">:</SPAN>String<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">:</SPAN>void<SPAN style="COLOR: #0000cc">{</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>发送数据到服务器<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>新建一个ByteArray来存放数据<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000ff">var</SPAN> message<SPAN style="COLOR: #0000cc">:</SPAN> ByteArray<SPAN style="COLOR: #0000cc">=</SPAN>new ByteArray<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN> <BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>写入数据,使用writeUTFBytes以utf8格式传数据,避免中文乱码<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message<SPAN style="COLOR: #0000cc">.</SPAN>writeUTFBytes<SPAN style="COLOR: #0000cc">(</SPAN>msg<SPAN style="COLOR: #0000cc">+</SPAN><SPAN style="COLOR: #ff00ff">"n"</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>写入socket的缓冲区<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;socket<SPAN style="COLOR: #0000cc">.</SPAN>writeBytes<SPAN style="COLOR: #0000cc">(</SPAN>message<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>调用flush方法发送信息<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;socket<SPAN style="COLOR: #0000cc">.</SPAN><SPAN style="COLOR: #ff0000">flush</SPAN><SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>清空消息框<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myInput<SPAN style="COLOR: #0000cc">.</SPAN><SPAN style="COLOR: #ff0000">text</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">""</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>接受服务器信息<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;internal function funSocket<SPAN style="COLOR: #0000cc">(</SPAN>event<SPAN style="COLOR: #0000cc">:</SPAN>ProgressEvent<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">:</SPAN>void<SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000ff">var</SPAN> msg<SPAN style="COLOR: #0000cc">:</SPAN>String<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">""</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>循环读取数据,socket的bytesAvailable对象存放了服务器传来的所有数据<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while<SPAN style="COLOR: #0000cc">(</SPAN>socket<SPAN style="COLOR: #0000cc">.</SPAN>bytesAvailable<SPAN style="COLOR: #0000cc">)</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>强制使用utf8格式,避免中文乱码<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg<SPAN style="COLOR: #0000cc">+</SPAN><SPAN style="COLOR: #0000cc">=</SPAN>socket<SPAN style="COLOR: #0000cc">.</SPAN>readMultiByte<SPAN style="COLOR: #0000cc">(</SPAN>socket<SPAN style="COLOR: #0000cc">.</SPAN>bytesAvailable<SPAN style="COLOR: #0000cc">,</SPAN><SPAN style="COLOR: #ff00ff">"utf8"</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>使用n换行符号把信息切开<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000ff">var</SPAN> arr<SPAN style="COLOR: #0000cc">:</SPAN>Array<SPAN style="COLOR: #0000cc">=</SPAN>msg<SPAN style="COLOR: #0000cc">.</SPAN>split<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #ff00ff">'n'</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #ff0000">for</SPAN><SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000ff">var</SPAN> <SPAN style="COLOR: #0000ff">i</SPAN><SPAN style="COLOR: #0000cc">:</SPAN>int<SPAN style="COLOR: #0000cc">=</SPAN>0<SPAN style="COLOR: #0000cc">;</SPAN><SPAN style="COLOR: #0000ff">i</SPAN><SPAN style="COLOR: #0000cc">&lt;</SPAN>arr<SPAN style="COLOR: #0000cc">.</SPAN>length<SPAN style="COLOR: #0000cc">;</SPAN><SPAN style="COLOR: #0000ff">i</SPAN><SPAN style="COLOR: #0000cc">+</SPAN><SPAN style="COLOR: #0000cc">+</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">{</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>正则表达式,回车符<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000ff">var</SPAN> myPattern<SPAN style="COLOR: #0000cc">:</SPAN>RegExp<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>r<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>删除回车符<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arr<SPAN style="COLOR: #0000cc">[</SPAN><SPAN style="COLOR: #0000ff">i</SPAN><SPAN style="COLOR: #0000cc">]</SPAN><SPAN style="COLOR: #0000cc">=</SPAN>arr<SPAN style="COLOR: #0000cc">[</SPAN><SPAN style="COLOR: #0000ff">i</SPAN><SPAN style="COLOR: #0000cc">]</SPAN><SPAN style="COLOR: #0000cc">.</SPAN>replace<SPAN style="COLOR: #0000cc">(</SPAN>myPattern<SPAN style="COLOR: #0000cc">,</SPAN><SPAN style="COLOR: #ff00ff">''</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>在聊天框中输出<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myText<SPAN style="COLOR: #0000cc">.</SPAN><SPAN style="COLOR: #ff0000">text</SPAN><SPAN style="COLOR: #0000cc">+</SPAN><SPAN style="COLOR: #0000cc">=</SPAN>arr<SPAN style="COLOR: #0000cc">[</SPAN><SPAN style="COLOR: #0000ff">i</SPAN><SPAN style="COLOR: #0000cc">]</SPAN><SPAN style="COLOR: #0000cc">+</SPAN><SPAN style="COLOR: #ff00ff">'n'</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myText<SPAN style="COLOR: #0000cc">.</SPAN>verticalScrollPosition<SPAN style="COLOR: #0000cc">=</SPAN>myText<SPAN style="COLOR: #0000cc">.</SPAN>maxVerticalScrollPosition<SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>滚动到最下面<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">}</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">]</SPAN><SPAN style="COLOR: #0000cc">]</SPAN><SPAN style="COLOR: #0000cc">&gt;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">&lt;</SPAN><SPAN style="COLOR: #0000cc">/</SPAN>fx<SPAN style="COLOR: #0000cc">:</SPAN><SPAN style="COLOR: #0000ff">Script</SPAN><SPAN style="COLOR: #0000cc">&gt;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">&lt;</SPAN>mx<SPAN style="COLOR: #0000cc">:</SPAN><SPAN style="COLOR: #0000ff">TextArea</SPAN> x<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"10"</SPAN> y<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"48"</SPAN> <SPAN style="COLOR: #ff0000">width</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"334"</SPAN> <SPAN style="COLOR: #ff0000">height</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"250"</SPAN> <SPAN style="COLOR: #ff0000">id</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"myText"</SPAN><SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">&gt;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">&lt;</SPAN><SPAN style="COLOR: #0000ff">s</SPAN><SPAN style="COLOR: #0000cc">:</SPAN>TextInput x<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"10"</SPAN> y<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"18"</SPAN> <SPAN style="COLOR: #ff0000">width</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"334"</SPAN> <SPAN style="COLOR: #ff0000">id</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"myName"</SPAN> <SPAN style="COLOR: #ff0000">text</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"名字"</SPAN><SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">&gt;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">&lt;</SPAN><SPAN style="COLOR: #0000ff">s</SPAN><SPAN style="COLOR: #0000cc">:</SPAN>TextInput x<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"10"</SPAN> y<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"297"</SPAN> <SPAN style="COLOR: #ff0000">width</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"261"</SPAN> <SPAN style="COLOR: #ff0000">height</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"20"</SPAN> <SPAN style="COLOR: #ff0000">id</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"myInput"</SPAN><SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">&gt;</SPAN><BR></LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000cc">&lt;</SPAN><SPAN style="COLOR: #0000ff">s</SPAN><SPAN style="COLOR: #0000cc">:</SPAN><SPAN style="COLOR: #0000ff">Button</SPAN> x<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"270"</SPAN> y<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"296"</SPAN> <SPAN style="COLOR: #0000ff">label</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"发送"</SPAN> <SPAN style="COLOR: #ff0000">width</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"74"</SPAN> <SPAN style="COLOR: #ff0000">id</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"myBtn"</SPAN> click<SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #ff00ff">"sendMessage(myName.text+':'+myInput.text)"</SPAN><SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000cc">&gt;</SPAN><BR></LI>
<LI><SPAN style="COLOR: #0000cc">&lt;</SPAN><SPAN style="COLOR: #0000cc">/</SPAN><SPAN style="COLOR: #0000ff">s</SPAN><SPAN style="COLOR: #0000cc">:</SPAN>Application<SPAN style="COLOR: #0000cc">&gt;</SPAN></SPAN></LI></OL></DIV>
<P><FONT color=#0000f0>参考资料</FONT></P>
<P><a href="http://www.114study.com/template/datum/datumdetail.aspx?ddid=422060" target="_blank">http://www.114study.com/template/datum/datumdetail.aspx?ddid=422060</A></P>
<P><FONT color=#f000f0><BR>&nbsp;</P></FONT>
页: [1]
查看完整版本: Flex和java的socket通信