Flash Socket 编程(2)

来源:互联网 发布:潞城网络花店 编辑:程序博客网 时间:2024/05/18 00:43

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);
   }
  }

这样我们可以接收到服务器发送来的信息,但是存在一个问题,接收数据会存在一个回车符合的问题,需要我们去解决。这里暂时不多说

看上面的

参考:

bytesAvailable : uint

[read-only] 输入缓冲区中可读取的数据的字节数。
readMultiByte(length:uint, charSet:String):String
使用指定的字符集,从该字节流读取一个多字节字符串。
四,发送信息给服务器
 问题:我们希望发送信息给服务器
解决:
使用writeUTFBytes 方法
private function SendData(e:MouseEvent):void
  {
   trace("发送");
   mysocket.writeUTFBytes("i am flash/n");
   mysocket.flush();//发送数据

  }
在场景上放一个按钮上去,通过点击按钮事件,发送信息给服务器socket端口。
参考:
 
writeUTFBytes(value:String):void
将一个 UTF-8 字符串写入套接字。
五:服务器程序
这里写一个简单服务器程序,使用一个简单的线程,不过线程并不完善,有缺点,但不影响程序演示:
接收结果:
等待连接....
连接成功....
获取里面的内容......
内容:Test successful2
内容:i am flash
内容:i am flash
内容:i am flash
内容:i am flash
内容:i am flash
为了让程序更加完善,我们可以将程序修改得更加完善
客户端发送的内容:
连接成功
收到的字节数16
null你好我是服务器
注意:出现null这个结果,也许在服务出现一些小毛笔,但基本发送数据的和接收数据都成功了
程序需要完善的地方:
包括客户端和服务器
处理回车符合问题
最后发现原来在var msg:String="";写上这样null 就不会出现了
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 七个多月的宝宝不吃辅食怎么办 婴儿光认奶粉不认母乳怎么办 宝宝11个月断奶不吃奶瓶怎么办 4个月的宝宝断奶不肯吃奶瓶怎么办 晚上磨牙齿把牙神经磨坏怎么办 喝母乳的宝宝不喝奶粉怎么办 我宝宝的牙齿长的不整齐怎么办? 宝宝5个月了母乳不够吃怎么办 4个月宝宝母乳不够吃怎么办 11个月宝宝只吃母乳怎么办 10个月宝宝突然不吃母乳怎么办 2个月宝宝咳嗽怎么办是吃母乳的 九个月宝宝不喜欢吃粥和米糊怎么办 9个月宝宝突然不吃辅食怎么办 宝贝8个月不吃辅食怎么办 11个月宝贝不吃辅食怎么办 十一个月宝宝长牙不吃辅食怎么办 八个多月的宝宝不爱吃辅食怎么办 7个月的宝宝不爱吃辅食怎么办 宝宝只吃母乳不吃辅食怎么办 10个月的宝宝不肯吃勺子怎么办 十一个月大宝宝不吃奶吃饭怎么办 十一个月宝宝光吃奶不吃饭怎么办 20个月宝宝爱吃奶不爱吃饭怎么办 宝宝8个多月不肯米糊跟粥怎么办 8个月宝宝突然不肯吃米糊了怎么办 八个月宝宝突然不吃辅食怎么办 八个月宝宝拉屎费劲还干怎么办 两个月的小孩不喜欢吃奶粉怎么办 三个多月的宝宝不爱吃奶怎么办 4个月的宝宝不吃奶怎么办 九个月宝宝一直高烧不退怎么办 8个月宝宝不吃辅食怎么办 孩子七个月了母乳不够了怎么办 11个月宝宝吃的太多怎么办 宝宝十一个月了上火眼死太多怎么办 9个月孩子不吃辅食怎么办 y一夜没有睡好现在母乳不够怎么办 喂母乳的婴儿总要吃奶怎么办 宝宝四个月了奶水不够吃怎么办 宝宝出生十天了奶水不够吃怎么办