c#

位置:IT落伍者 >> c# >> 浏览文章

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


发布日期:2020年06月29日
 
Flex与.NET基于Socket的网络连接

Flash/Flex也支持基于Socket的网络连接 服务器端可以是C++VBC#Java等任一语言开发监听一个网络端口便可以接收到Flash/Flex开发的客户端的连接

ActionScript 提供了通过Socket连接的方式与服务器端通信这点是超越传统B/S结构的重要特征这样使得网络通信可以即时连接避免了HTTP协议无状态连接的弊病ActionScript 使用XMLSocket类进行连接需要注意的是使用XMLSocket类进行Socket连接时不能自动穿过防火墙要想穿过防火墙连接则需要使用基于HTTP协议的RTMP协议

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

XMLSocket(host:String=nullport:int=)创建一个新的XMLSocket对象

close():void关闭一个XMLSocket

connect(host:Stringport:int):void连接到指定的TCP端口

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

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

using System;

using SystemCollectionsGeneric;

using SystemLinq;

using SystemText;

using SystemNetSockets;

using SystemIO;

namespace FlashFlexDotNet

{

class Program

{

static void Main(string[] args)

{

TcpListener listener;

try

{

listener = new TcpListener();

}

catch (Exception ex)

{

ConsoleWriteLine(exMessage);

return;

}

listenerStart();

ConsoleWriteLine(服务器启动等待客户端连接);

bool loop = true;

while (loop)

{

Socket s = listenerAcceptSocket();

NetworkStream ns = new NetworkStream(s);

StreamReader reader = new StreamReader(ns);

string result = stringEmpty;

try

{

result = readerReadLine();

ConsoleWriteLine(result);

}

catch (Exception ex)

{

ConsoleWriteLine(exMessage);

}

}

}

}

}

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

如本文前介绍ActionScript 提供了基于Socket的网络连接类XMLSocket

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

private function connectionServer():void

{

xmlConn = new XMLSocket();

nnect();

}

随后便可以通过XMLSocket的实例方法send()向Socket服务端发送消息了如下代码定义

private function onSend():void

{

xmlConnsend(txtDatatext + \n);

}

客户端完整代码

<?xml version= encoding=utf?>

<mx:Application xmlns:mx= layout=absolute

backgroundGradientAlphas=[ ]

backgroundGradientColors=[#CDCAE #FFFFFF]>

<mx:Script>

<![CDATA[

import ntrolsAlert;

private var xmlConn:XMLSocket;

private function connectionServer():void

{

xmlConn = new XMLSocket();

nnect();

}

private function onSend():void

{

xmlConnsend(txtDatatext + \n);

}

]]>

</mx:Script>

<mx:TextArea x= y= height= width= id=txtData/>

<mx:Button x= y= label=连 接 fontSize= click=connectionServer()/>

<mx:Button x= y= label=发 送 fontSize= click=onSend()/>

<mx:Application>

如下为本文示例程序测试结果图

               

上一篇:ADO.NET性能改善方法集合

下一篇:C#异步Socket代码示例