[ActionScript 3.0] NetConnection建立客户端与服务器的双向连接

一个客户端与服务器之间的接口测试的工具

<?xml version="1.0" encoding="utf-8"?>
<!--- - - - - - - - - - - - - - - - - - - - - - - - -
* @author:Frost.Yen
* @E-mail:[email protected]
* @create:2016-7-13上午12:10:20
- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"  minWidth="955" minHeight="600" width="800" height="600" applicationComplete="application1_applicationCompleteHandler(event)">
    <fx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import mx.events.FlexEvent;
            private var _netConnection:NetConnection;
            protected function button1_clickHandler(event:MouseEvent):void
            {
                if(request.text == ""){
                    Alert.show("请输入请求地址","温馨提示");
                    return;
                }
                if(action.text == ""){
                    Alert.show("请输入请求方法","温馨提示");
                    return;
                }
                resultText.text = "connecting...";
                initNetConnection();
                _netConnection.connect( request.text as String);
                _netConnection.call(action.text,new Responder(function(result:Object):void{
                    if (result) {
                        trace("onResult: ",JSON.stringify(result));
                        resultText.text = "onResult:\n\n"+"ation:"+action.text+"\narguments:"+param.text+"\n\nresult:\n"+JSON.stringify(result);
                    }
                }),param.text);
            }

            private function initNetConnection():void
            {
                if (!_netConnection) {
                    trace("initConnection");
                    _netConnection = new NetConnection();
                    NetConnection.defaultObjectEncoding = ObjectEncoding.AMF3;
                    _netConnection.addEventListener(NetStatusEvent.NET_STATUS,onStatus);
                }
            }
            public function onStatus(e:NetStatusEvent):void
            {
                trace("e.info.code", e.info.code);
                resultText.text = e.info.code;
                switch (e.info.code) {
                    case "NetConnection.Connect.Success":
                    case "NetConnection.Connect.Rejected":
                    case "NetConnection.Connect.NetworkChange":
                    case "NetConnection.Connect.Closed":
                        break;
                    case "NetConnection.Call.Failed":
                    case "NetConnection.Connect.Failed":
                        //case "NetConnection.Call.BadVersion"://以不能识别的格式编码的数据包。
                        trace("onReConnect");
                        if (_netConnection) {
                            _netConnection.removeEventListener(NetStatusEvent.NET_STATUS,onStatus);
                            _netConnection.close();
                            _netConnection = null;
                        }
                        break;
                }
            }
            private function test(...arg):void
            {
                trace(arg);
            }

            protected function application1_applicationCompleteHandler(event:FlexEvent):void
            {
                test("1",2,3);
            }

        ]]>
    </fx:Script>

    <s:HGroup gap="4" top="10" left="5"  >
        <s:Label text="RequestURL:" paddingTop="6"/>
        <s:TextInput id="request" width="180" text="http://45.63.127.27/web/"/>
        <s:Label text="action:"  paddingTop="6"/>
        <s:TextInput id="action" width="150" text="LoginAction.index"/>
        <s:Label text="params:"  paddingTop="6"/>
        <s:TextInput id="param" width="200" text="login,apple,tomyuang"/>
        <s:Button label="send" click="button1_clickHandler(event)"/>
    </s:HGroup>
    <s:TextArea id="resultText" width="790" height="500" left ="5" top="50" selectable="true" />
</s:Application>
时间: 2024-07-29 04:50:59

[ActionScript 3.0] NetConnection建立客户端与服务器的双向连接的相关文章

用java语言构建一个网络服务器,实现客户端和服务器之间通信,实现客户端拥有独立线程,互不干扰

服务器: 1.与客户端的交流手段多是I/O流的方式 2.对接的方式是Socket套接字,套接字通过IP地址和端口号来建立连接 3.(曾经十分影响理解的点)服务器发出的输出流的所有信息都会成为客户端的输入流,同时所有客户端的所有输出流都会包含在服务器的输入流中. (即套接字即使建立连接,输入输出流都是相对自己的而言的,向外发送自己的内部的信息都用输出流,接受外部的数据都使用输入流!) 简单服务器的代码实现: public static void main(String [] args){ try

java实现客户端向服务器发送文件的操作

服务器源代码: import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.ServerSocket;

Android客户端与服务器交互方式-小结

最近的Android项目开发过程中一个问题困扰自己很长时间,Android客户端与服务器交互有几种方式,最常见的就是webservices和json.要在Android手机客户端与pc服务器交互,需要满足下面几种条件:跨平台.传输数据格式标准.交互方便. 为了与服务器通讯其实无非就两种协议HTTP和TCP,TCP的学习Socket,HTTP的话熟悉一下HTTP协议和相关Java API.而下面的几种方式就是从这两种协议扩展出来的:webservices soap.SSH的JSON(可参考:该链接

Socket 通信原理(Android客户端和服务器以TCP&amp;&amp;UDP方式互通)

ZERO.前言 有关通信原理内容是在网上或百科整理得到,代码部分为本人所写,如果不当,还望指教. 一.Socket通信简介 Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据.而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求. 那么,什么是s

Java实验四 TCP客户端和服务器的应用

实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全 4.对通信内容进行摘要计算并验证 实验步骤 1.信息安全传送: 发送方A——————>接收方B A加密时,用B的公钥 B解密时,用B的私钥 发送方A对信息(明文)采用DES密钥加密,使用RSA加密前面的DES密钥信息,最终将混合信息进行传递.同时用hash函数将明文进行用作验证.    接收方B接收到信息后,用RSA解密DES密钥信息,再用RSA解密获取到的密钥信息解密密文信息,最终就可以得到我们要的信息(明文)

.Net网络编程——使用TcpClient与TcpListener建立客户端与服务端连接

一,.NET中如何实现建立连接 在网络中,我们可以通过IP地址唯一定位一台主机,而在主机中,我们要确定收到的数据包发给谁,可以通过端口号,端口号的作用简单说就是不至于使你要发给QQ好友的消息数据包被错误发到了你的OC程序上. 通常,我们把发起连接的那一端称为客户端,这是主动的一方:而静默等待连接到来的那一端作为服务端.这个概念是比较相对的. 在.Net中,我们可以使用TcpClient来建立连接,使用TcpListener来监听连接,从而在客户端和服务端建立连接. 二,服务端建立监听 using

Android开发之简单的聊天室(客户端与服务器进行通信)

1.使用ServerSocket创建TCP服务器端 Java中能接收其他通信实体连接请求的类是ServerSocket, ServerSocket对象用于监听来 自客户端的Socket连接,如果没有连接,它将一直处于等待状态.ServerSocket包含一个监听来自客户端连接请求的方法. 1) Socket accept():如果接收到一个客户端Socket的连接请求,该方法将返回一个与连接客户端Socket对应的Socket;否则该方法将一直处于等待状态,线程也被阻塞. 创建ServerSoc

C语言 Socket入门示例1—— 单工通信(客户端向服务器发送消息)

如果对Windows API不太熟悉.对TCP/IP通信协议不太熟悉,或者对C语言本身不太熟悉的话,学习Socket会有点难受的.以前学习操作系统的时候,被API吓怕了,很多莫名其妙的API有着多如牛毛的参数,令人费解.学习计算机网络的时候,又有那么多的协议,并且很多协议本身比较复杂,什么三次握手建立连接,什么四次握手释放链接等等,也没有学得特别透彻.更遗憾的是,以前学C的时候,误以为自己把C学会了,误以为C就那么几个头文件而已,就一个黑框子而已. 现在,经过一段时间的痛苦磨练,又有了一些新的认

2015/12/14 Python网络编程,TCP/IP客户端和服务器初探

一直不是很清楚服务器的定义,对于什么是服务器/客户端架构也只有一个模糊的感觉.最近开始学习,才明白一些什么服务器和客户端的关系. 所谓的服务器,就是提供服务的东西,它是一个硬件或者软件,可以向一个或者多个客户端提供所需要的服务.它存在的目的就是等待客户的请求,然后给客户服务,再接着等待请求. 而客户端,就来连上一个服务器,提出自己的请求,然后等待获得反馈. 比如说,打印机就是一个服务器的例子,与之相连的计算机就是客户端,通过网络连接打印机后,给它提出服务需求(打印)和传输数据(传输内容),然后打