Flash/Flex也支持基于Socket的网络连接 ,服务器端可以是C++,VB,C#,Java等任一语言开发。监听一个网络端口便可以接收到Flash/Flex开发的客户端的连接。
ActionScript 3.0提供了通过Socket连接的方式与服务器端通信。这点是超越传统B/S结构的重要特征。这样使得网络通信可以即时连接,避免了HTTP协议无状态连接的弊病。ActionScript 3.0使用XMLSocket类进行连接。需要注意的是使用XMLSocket类进行Socket连接时,不能自动穿过防火墙。要想穿过防火墙连接,则需要使用基于HTTP协议的RTMP协议。http://www.my400800.cn
通过查阅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端口。示例程序如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.IO;
namespace FlashFlexDotNet
{
class Program
{
static void Main(string[] args)
{
TcpListener listener;
try
{
listener = new TcpListener(8888);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return;
}
listener.Start();
Console.WriteLine("服务器启动,等待客户端连接.");
bool loop = true;
while (loop)
{
Socket s = listener.AcceptSocket();
NetworkStream ns = new NetworkStream(s);
StreamReader reader = new StreamReader(ns);
string result = string.Empty;
try
{
result = reader.ReadLine();
Console.WriteLine(result);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
}
服务器端Socket已经准备完毕,下面看看客户端的ActionScript的XMLSocket怎么来建立Socket连接与.net的Socket服务端进行通信。
如本文前介绍,ActionScript 3.0提供了基于Socket的网络连接类XMLSocket,
我们可以直接使用它来开发基于Socket的网络通信。如下建立一个基与ActionScript 3.0提供的XMLSocket的网络连接:
private function connectionServer():void
{
xmlConn = new XMLSocket();
xmlConn.connect("127.0.0.1",8888);
}
随后,便可以通过XMLSocket的实例方法send()向Socket服务端发送消息了。如下代码定义:
private function onSend():void
{
xmlConn.send(txtData.text + "\n");
}
户端完整代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
backgroundGradientAlphas="[1.0, 1.0]"
backgroundGradientColors="[#CDCAE6, #FFFFFF]">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
private var xmlConn:XMLSocket;
private function connectionServer():void
{
xmlConn = new XMLSocket();
xmlConn.connect("127.0.0.1",8888);
}
private function onSend():void
{
xmlConn.send(txtData.text + "\n");
}
]]>
</mx:Script>
<mx:TextArea x="43" y="34" height="120" width="263" id="txtData"/>
<mx:Button x="93" y="180" label="连 接" fontSize="12" click="connectionServer()"/>
<mx:Button x="190" y="180" label="发 送" fontSize="12" click="onSend()"/>
<mx:Application>
分享到:
相关推荐
PaddleX-YOLOv3
官方 HarmonyOS Sans字体资源。(来自官方公开资料)
那些年,与你同分同位次的同学都去了哪里?全国各大学在辽宁2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
软件开发C++重要培训资料分享13软件开发C++开发技术资料.zip
亲爱的嵌入式开发者们, 您是否在寻找一种强大且灵活的工具来创建高效的嵌入式应用程序?QT 是您的不二选择!我们为您精心准备了一份全面的 QT 嵌入式开发教程,帮助您从零开始,逐步掌握这门强大的技术。 为什么选择 QT 嵌入式开发? 跨平台支持:支持多种操作系统(如 Linux, Windows, macOS)和硬件平台(如 ARM, x86),实现一次编写,到处运行。 丰富的 UI 组件:内置大量高质量的 UI 组件,轻松创建美观且响应迅速的用户界面。 高性能:优化的图形渲染引擎和高效的内存管理,确保应用程序在资源受限的环境中也能流畅运行。 强大的生态系统:庞大的社区支持和丰富的第三方库,助您解决各种开发难题。 易于学习:C++ 和 QML 语言结合,既适合初学者也适合有经验的开发者。 本教程适合谁? 嵌入式开发新手:从未接触过 QT 的新手,希望快速入门。 专业工程师:希望提升技能,提高工作效率的专业人士。 学生:对嵌入式系统和 GUI 开发感兴趣的在校学生。 研究人员:需要进行嵌入式系统开发的研究
那些年,与你同分同位次的同学都去了哪里?全国各大学在辽宁2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
基于东方世界的微信小程序商城
该动漫社团项目“烟雨社”采用Html作为主要开发语言,融合了Python, JavaScript, CSS等辅助语言,整体源码包含80个文件,其中包括27个JPG图片、14个PNG图片、8个Python脚本、7个JavaScript脚本、5个XML配置文件、5个CSS样式表以及相关文档和配置文件。项目以清晰的结构和丰富的资源,为动漫爱好者提供了一个全面展示与互动的平台。
那些年,与你同分同位次的同学都去了哪里?全国各大学在辽宁2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
职业心理测试职业知识测试8个文件职业心理测试职业知识测试8个文件
54.基于matlab的模糊自适应PID控制器,PID参数的整定必须考虑到在不同时刻三个参数的作用及相互之间的关系。 在线实时模糊自整定PID算法的基础上,通过计算当前系统e和误差变化率ec,利用模糊规则进行模糊推理,查询模糊矩阵表进行参数调整。 程序已调通,可直接运行。
微信小程序商城,欢迎学习交流_微信
基于西门子S7-200PLC的自动灌溉系统组态王组态 带解释的梯形图程序,接线图原理图图纸,io分配,组态画面
那些年,与你同分同位次的同学都去了哪里?全国各大学在辽宁2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
STM32硬件液晶资料ILI9320(ID9320)
逆变器器设计资料 包含原理图设计详解 pcb布局详解 软件设计思路 原理图,pcb都有且是对应的方便学习设计
枝晶生长Comsol仿真模型。 锂枝晶生长过程的 枝晶生长Comsol仿真模型。 锂枝晶生长过程的枝晶形貌,温度场耦合,应力场,浓度场,电势场。 C++程序,基于元胞自动机法模拟枝晶生长,能实现任意角度(偏心正方算法),同时采用LBM考虑了对流作用对枝晶生长的影响
STM32软件学习资料NES资料STM32软件学习资料NES资料
有N个麻将文字+麻将的背景图片,根据每个人喜好不同,麻将背景的颜色也可以选择,利用这段脚本可以将麻将文字+背景结合起来,生成任意背景的麻将图片.
本项目为基于C++的g2o优化算法库设计源码,共包含698个文件,涵盖279个头文件(.h),272个源文件(.cpp),79个文本文件(.txt),以及少量CMake列表、YAML配置、Shell脚本和Git忽略配置等辅助文件。该库适用于各类优化算法开发,并支持C, Python等语言的集成调用。