所谓socket通常也称作"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求。Socket一般应用于聊天软件(QQ,MSN),音频视频传输以及网络游戏。在ActionScript中,socket通信主要用于网络游戏。
在客户端,需要完成以下的内容:
1.我们需要指定连接服务器的的IP和端口号
2.与服务器进行连接
3.向服务器发送数据
4.监听服务器到达的数据
一个简单的示例代码如下:
var socket:Socket=new Socket();
socket.connect(IP,PORT);
socket.addEventListener(Event.CONNECT,connect);
socket.addEventListener(IOErrorEvent.IO_ERROR,error);
socket.addEventListener(ProgressEvent.SOCKET_DATA,socketData);
function connect(e:Event):void
{
trace("连接成功");
}
function error(e:IOErrorEvent):void
{
trace("无法连接服务器");
}
function socketData(e:ProgressEvent)
{
var data:ByteArray=new ByteArray();
socket.readBytes(data);
var str:String=String(data);
trace("读取数据");
}
function sendData():void
{
socket.writeUTFBytes("字符串数据");
socket.flush();
}
在服务器端我们需要处理一下的内容:
1.绑定本地的IP地址和端口 2.开始监听客户端的请求 3.对客户端的请求进行连接 4.维护客户列表
一个简单的示例代码如下:
var socketServer:SocketServer=new SocketServer();
socketServer.bind(PORT,IP);
socketServer.listen();
socketServer.addEventListener(ServerSocketConnectEvent.CONNECT,connect);
var client_arr:Array=new Array();
function connect(e:ServerSocketConnectEvent):void
{
var socket:Socket=e.socket as Socket;
client_arr.push(socket);
socket.addEventListener(ProgressEvent.SOCKET_DATA,read);
socket.addEventListener(Event.CLOSE,clientClose);
socket.writeUTFBytes("欢迎连接服务器");
socket.flush();
}
function read(e:ProgressEvent):void
{
var socket:Socket=e.target as Socket;
var data:ByteArray=new ByteArray();
socket.readBytes(data);
var str:String=String(data);
}
function clientClose(e:Event):void
{
trace("客户断开连接");
}
这样,一个客户端和服务器端的Socket通信就实现了。当然,内部如何对于接收到的数据进行处理,这属于每个应用需要自己去完成的事情。
一个简单的客户端和服务端聊天室的例子可以通过以下链接下载:http://download.csdn.net/detail/u012416063/6388149