您的位置:首页 > 大数据 > 人工智能

AIR2.0入门教程: ServerSocket -(3) ServerSocket例子

2010-04-24 14:51 316 查看
这篇文章中,我们使用AIR2.0中提供的新API -- SeverSocket来构建一个你自己的聊天程序。

这个聊天程序由两部分组成,一个是客户端,一个是服务端。

 

准备工作

在开始之前,我们首先要做一些准备工作。请确保你有以下环境:

1,Flashbuilder beta2安装

首先在这里
现在Flashbuilder 。建议用迅雷下载。这里给出的链接是独立安装版的,如果你已经有eclipse并且喜欢插件版,也可以自己下载插件版安装。

2,AIR2.0B1的SDK

这里
下载SDK.

3,配置FlashBuilder让它能正常使用AIR2.0的SDK。这里大家如果不知道如何做,可以参考AIR2.0入门教程[一]:新特性介绍以及开发环境的配置



 

Socket 以及ServerSocket的编程接口介绍

我们在前面的文章里面已经对Socket的概念和ServerSocket进行了介绍,这里对应Socket以及ServerSocket再来介绍一下这些概念对应到编程接口中表现为什么。

ServerSocket

在这里,一个ServerSocket的作用实际上就是注册到一个特定的IP地址和端口上等待连接。一旦客户端通过这个IP地址找到了这个服务端。
一个TCP/IP连接就被建立起来。一旦连接被建立起来后,ServerSocket的使命就基本上完成了一大部分。他在以后服务端和客户端的交换中不起
太多的作用。

总结其作用,他有两个主要作用:

1,通过指定一个特定的IP地址和端口号,监听网络请求。

server.bind(address,port)

server.listen();

2,把网络请求以ServerSocketConnectEvent
的事件通知给编程人员,以方便下一步对这个网络请求的处理。

Socket

Socket是用来封装数据交换过程中的操作而出现的一个概念。当客户端希望连接到一个服务端的时候,他首先需要通过Socket来指明他希望连接
到的服务端的地址以及端口号。一旦服务端相应这个请求,这个socket就成为一个代表客户端到服务器端连接的对象。所有对服务器的数据交换操作都在
Socket对象上发生。一个需要注意的概念是,在服务端,当一个连接被建立起来后,服务端也会创建一个Socket对象用来保存他对客户端的连接以及用
于处理之后发生的数据交换。ServerSocket则不负责任和数据交换的工作。

Socket的主要作用则是:

1,通过指定一个特定的IP地址和端口号,发起一个针对服务器的请求

2,服务器接受请求后,通过write*方法讲客户端的数据写入发送流,并且发送到通信的另一方。

3,通过ProgressEvent.SOCKET_DATA事件来通知编程人员对方数据到达,以进行下一步处理。

这里,我需要再次强调一遍,Socket是服务端和客户端通信都需要的对象,服务端一旦建立起和客户端的连接后,会产生一个新的Socket对象供编程人员来操作这个连接,ServerSocket则不会参与后期的数据交换,它的作用仅仅在于创建连接。

例程功能描述

这个聊天程序所实现的是:一个服务端以及一个客户端组成这个程序。服务端启动后监听一个端口,由客户端连接。一点连接成功,就可以开始聊天应用了。

如果你有兴趣,可以对这个项目进行改进。比如加入服务器的房间管理,以及客户端的私聊等。由于现在的聊天服务已经非常普遍而且都非常成熟,这个聊天程序没有太大的实际用途。我们只是在这里通过介绍这个聊天程序来向大家介绍AIR的ServerSocket的基本使用原理。

构建程序

首先,我们先来看看服务器端的界面:



这个界面中,我们有一个IP地址选择框用来选择你想监听网卡上的哪个IP地址。对于这里不明白的,请参考上一篇
文章中的关于绑定地址的概念。同时,有一个端口选择框,让你选择你想监听的端口。

客户端界面



 这里是客户端界面,这个界面中,我们看到我们可以选择连接到哪个服务器,这里的服务器地址,就是运行服务端的电脑的IP地址,我目前填写了
Localhost因为大家在测试的时候,一般都是在同一台机器上连接服务端的。同时,这里也有一个端口选择输入,用于输入你想要使用的网络端口。

 看到这里,我建议大家下载编译好的程序到本地,运行一下,这样可以更好理解程序的逻辑。点击这里
下载编译好的AIR文件。(需要登录才能下载)

 

程序结构



在这个程序中,我们有两个可以直接运行的文件,分别是:

SocketClient.mxml 这个是客户端

SocketServerExample.mxml则是服务端

这里,我着重介绍一下com.riameeting.air20b1_example这个包下面的几个类的做用

Client是封装客户端代码的一个类,其作用是接受Socket消息,并且触发消息事件。另外,当发送消息的时候,也是通过这个类实现的。

MessageEvent则是一个封装的事件,用来传递消息

NWinterface是一个用来获取本机网络接口的类。它可以告诉你本机有几个网卡,每个网卡的IP地址是什么

Server则是一个封装了服务端监听的类。他其实是一个ServerSocket的子类。

 点这里
程序的源代码下载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: