Flash/Flex はソケットベースのネットワーク接続もサポートしており、サーバー側は C++、VB、C#、Java などの任意の言語で開発できます。ネットワーク ポートをリッスンすることにより、Flash/Flex によって開発されたクライアントからの接続を受信できます。
ActionScript 3.0 は、Socket 接続を介したサーバーとの通信を提供します。これは従来のB/S構造を超える重要な機能です。これにより、ネットワーク通信を即座に接続できるようになり、HTTP プロトコルのステートレス接続の欠点が回避されます。 ActionScript 3.0 は、接続に XMLSocket クラスを使用します。 XMLSocket クラスを使用して Socket 接続を行う場合、自動的にファイアウォールを通過することはできませんので注意してください。ファイアウォールを介して接続するには、HTTP プロトコルに基づく RTMP プロトコルを使用する必要があります。
Adobe が提供する API ドキュメントを参照すると、XMLSocket が 4 つのパブリック メソッドを提供していることがわかります。
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 を使用してソケットベースのネットワークインスタント通信アプリケーションを開発できます。以下は、C# 経由でソケット サーバーを提供し、ポート 8888 をリッスンします。サンプル プログラムは次のとおりです。
1privatefunctionconnectionServer():void
2{
4xmlConn.connect("127.0.0.1", 8888);
5}その後、XMLSocket インスタンス メソッド send() を介して Socket サーバーにメッセージを送信できます。次のコード定義:
1
2
4backgroundGradientColors="[#CDCAE6,#FFFFFF]">
5
67importmx.controls.Alert] ;
8
9privatevarxmlConn:XMLSocket;
10
11privatefunctionconnectionServer():void
12{
13xmlConn=newXMLSocket();
14xmlConn.connect("127.0.0.1",8888);
15}
16
17プライベート関数onSend(): void
18{
19xmlConn.send(txtData.text+"n");
20}
21]]>
22
23
24
25
26