温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何实现Flex与.NET基于Socket的网络连接

发布时间:2021-12-16 16:32:29 来源:亿速云 阅读:153 作者:小新 栏目:编程语言

这篇文章给大家分享的是有关如何实现Flex与.NET基于Socket的网络连接的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Flex与.NET基于Socket的网络连接

Flash/Flex也支持基于Socket的网络连接,服务器端可以是C++,VB,C#,Java等任一语言开发。监听一个网络端口便可以接收到Flash/Flex开发的客户端的连接。
ActionScript3.0提供了通过Socket连接的方式与服务器端通信。这点是超越传统B/S结构的重要特征。这样使得网络通信可以即时连接,避免了HTTP协议无状态连接的弊病。ActionScript3.0使用XMLSocket类进行连接。需要注意的是使用XMLSocket类进行Socket连接时,不能自动穿过防火墙。要想穿过防火墙连接,则需要使用基于HTTP协议的RTMP协议。

通过查阅Adobe提供的API文档可以了解到,XMLSocket提供了四个公开方法:

1、XMLSocket(host:String=null,port:int=0)--创建一个新的XMLSocket对象。

2、close():void--关闭一个XMLSocket。

3、connect(host:String,port:int):void--连接到指定的TCP端口。

4、send(object:*):void--将数据发送到连接服务端。

OK,了解这些后我们就可以用XMLSocket来开发基于Socket的网络及时通信应用。下面通过C#提供一个Socket的服务端,并监听8888端口。示例程序如下:

1usingSystem;  2usingSystem.Collections.Generic;  3usingSystem.Linq;  4usingSystem.Text;  5usingSystem.Net.Sockets;  6usingSystem.IO;  7  8namespaceFlashFlexDotNet  9{  10classProgram  11{  12staticvoidMain(string[]args)  13{  14TcpListenerlistener;  15  16try  17{  18listener=newTcpListener(8888);  19}  20catch(Exceptionex)  21{  22Console.WriteLine(ex.Message);  23return;  24}  25  26listener.Start();  27Console.WriteLine("服务器启动,等待客户端连接.");  28boolloop=true;  29  30while(loop)  31{  32Sockets=listener.AcceptSocket();  33NetworkStreamns=newNetworkStream(s);  34StreamReaderreader=newStreamReader(ns);  35stringresult=string.Empty;  36try  37{  38result=reader.ReadLine();  39Console.WriteLine(result);  40}  41catch(Exceptionex)  42{  43Console.WriteLine(ex.Message);  44}  45}  46}  47}  48}  49

◆服务器端Socket已经准备完毕,下面看看客户端的ActionScript的XMLSocket怎么来建立Socket连接与.net的Socket服务端进行通信。

如本文前介绍,ActionScript3.0提供了基于Socket的网络连接类XMLSocket,

我们可以直接使用它来开发基于Socket的网络通信。如下建立一个基与ActionScript3.0提供的XMLSocket的网络连接:

1privatefunctionconnectionServer():void  2{  3xmlConn=newXMLSocket();  4xmlConn.connect("127.0.0.1",8888);  5}  随后,便可以通过XMLSocket的实例方法send()向Socket  服务端发送消息了。如下代码定义:   1privatefunctiononSend():void  2{  3xmlConn.send(txtData.text+"\n");  4}

客户端完整代码:

1<?xmlversionxmlversion="1.0"encoding="utf-8"?> 2<mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/  mxml"layout="absolute" 3backgroundGradientAlphas="[1.0,1.0]" 4backgroundGradientColors="[#CDCAE6,#FFFFFF]"> 5<mx:Script> 6<![CDATA[  7importmx.controls.Alert;  8  9privatevarxmlConn:XMLSocket;  10  11privatefunctionconnectionServer():void  12{  13xmlConn=newXMLSocket();  14xmlConn.connect("127.0.0.1",8888);  15}  16  17privatefunctiononSend():void  18{  19xmlConn.send(txtData.text+"\n");  20}  21]]> 22</mx:Script> 23<mx:TextAreaxmx:TextAreax="43"y="34"height="120"width="263"  id="txtData"/> 24<mx:Buttonxmx:Buttonx="93"y="180"label="连接"fontSize="12"click="connectionServer()"/> 25<mx:Buttonxmx:Buttonx="190"y="180"label="发送"fontSize="12"click="onSend()"/> 26<mx:Application>

感谢各位的阅读!关于“如何实现Flex与.NET基于Socket的网络连接”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI