服务端:java jdk1.5 (使用工具:eclipse3.2)
客户端:flex 2
连接
目的:实现flex和java的连接
服务端代码:Server1.java
===========================================
import java.net.*;
import java.io.*;
public class Server1 {
public static void main(String[] args) {
ServerSocket server=null;
try{
server=new ServerSocket(8888);
//x1
System.out.println("服务器套接字已经被创建");
while(true){
System.out.println("等待客户机");
Socket newSocket=server.accept();//x2
System.out.println("已与客户机连接");
}
}catch(IOException ie)
{
System.out.println(ie);
}finally{
Try
{
if(server!=null) server.close();//x3
}catch(IOException ie){}
}
}
}
知识点:
X1:使用指定的端口号创建了一服务器套接字对象。
X2:调用accept()方法来等待客户机的连接请求。
X3:关闭服务器套接字。如果一直没有客户机器提出连接请求,服务器套接字将会继续等待。
客户端代码:Client1.mxml
===================================================
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creati f width="349" height="326">
<mx:Script>
<![CDATA[
import flash.net.Socket; //导入类包
private var socket:Socket;
//创建Socket对象
internal function initApp():void
{
socket=new Socket(); //new出来,这时候才能被使用
socket.connect("127.0.0.1",8888); //连接服务器
socket.addEventListener(Event.CONNECT,funConnect);
//监听是否连接上服务器
socket.addEventListener(Event.CLOSE,funClose);
//监听服务器是否关闭
}
private function funConnect(event:Event):void
{
myText.text+="已经成功连接到服务器!n";
}
private function funClose(event:Event):void
{
myText.text+="和服务器断开!n"
}
]]>
</mx:Script>
<mx:TextArea x="10" y="10" width="327" height="309" id="myText"/>
</mx:Application>
界面很简单,就是拖了一个TextArea组件来记录连接状态。
知识点:
在as3.0中,所有和网络通信有关的类都位于flash.net包中,这里使用的是Socket类对象。
下买你用Socket 对象建立一个新的Socket对象:
var socket:Socket=new Socket();
或者
var socket:Socket=new Socket(“127.0.0.1”,8888);
这条语句设置了服务器地址为127.0.0.1 端口是8888
当指定了了服务器地址和端口,Socket对象将自动开始连接服务器。如果不指定,则需要条用connect方法才开始执行连接动作,比如:
var socket:Socket=new Socket();
socket.connect(“127.0.0.1”,8888);
完成连接动作后,接下来要获取服务端得返回信息。Socket对象利用时间机制来处理服务器端的信息,我们只要给Socket对象添加相关的事件监听函数就可以捕捉到服务器端的信息,Socket对象的事件主要有:
1 Event.CLOSE 连接中断事件。
2 Event.CONNECT 连接状态事件,表示已经成功连接了服务器。
3 IOErrorEvent.IO_ERROR 信息传递错误事件,一般是由服务器地址错误引起的。
4 ProgressEvent.SOCKET_DATA 服务器信息事件,当收到服务器的新信息时被触发。
3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/