ActionScript3.0中的Socket编程基础

所谓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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值