Flash Socket编程(1)
http://blog.csdn.net/hero82748274/archive/2009/02/03/3860895.aspx
现在来写一个flash 客户端,这里要解决的问题包括,
如何连接服务器,
如何监听服务器的内容,
如何发送信息服务器,
现在发一段简单的代码,这个代码很简单,功能不完整,为的是能够清晰一点让我们学习flash socket编程。
我们首先解决第一个问题:(其实在cookbook那里已经有说的)这里简单演示一下
一.连接服务器:
mysocket=new Socket();
mysocket.addEventListener(Event.CONNECT,OnConnect);
mysocket.connect(host,port);
host :是连接的ip端,这里连接本地所以使用localhost 或者127.0.0.1 就ok
port:端口号只有大于1024的时候基本上可以顺利,小于1024还要进行一些配置
监听连接是否成功:
private function OnConnect(e:Event):void
{
trace("连接成功");
mysocket.writeUTFBytes("Test successful2\n");
mysocket.flush();//发送数据
}
连接成功后,我们可以发送一个简单信息给服务器:
mysocket.writeUTFBytes("Test successful2\n");
mysocket.flush();//发送数据
注意,有个\n没有这个回车符,看看会有一些什么发生呢。
使用writeUTFBytes 是不可能立刻发送数据给服务器的,还要使用flush方法才能发送给服务器。
二.处理错误:
mysocket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
private function ioErrorHandler(e:IOErrorEvent):void
{
trace("连接失败");
}
三.接收服务器返回的信息
mysocket.addEventListener(ProgressEvent.SOCKET_DATA , receivedata);
private function receivedata(e:ProgressEvent):void
{
trace("收到的字节数"+mysocket.bytesAvailable);
var msg:String;
while (mysocket.bytesAvailable)
{
msg+=mysocket.readMultiByte(mysocket.bytesAvailable,"utf8");
trace(msg);
}
}
这样我们可以接收到服务器发送来的信息,但是存在一个问题,接收数据会存在一个回车符合的问题,需要我们去解决。这里暂时不多说
看上面的
参考:
将一个 UTF-8 字符串写入套接字。
|