次のコードは、Java で作成した単純な XMLSocket サーバーの例です。接続を受け付け、受信したメッセージをコマンドプロンプトウィンドウに表示します。デフォルトでは新しいサーバーをローカルマシンのポート番号 8080 に作成しますが、サーバーを起動する際のコマンドラインでポート番号を変更することもできます。
新しいテキストドキュメントを作成し、次のコードを入力します。
import java.io.*;
import java.net.*;
class SimpleServer
{
private static SimpleServer server;
ServerSocket socket;
Socket incoming;
BufferedReader readerIn;
PrintStream printOut;
public static void main(String[] args)
{
int port = 8080;
try
{
port = Integer.parseInt(args[0]);
}
catch (ArrayIndexOutOfBoundsException e)
{
// Catch exception and keep going.
}
server = new SimpleServer(port);
}
private SimpleServer(int port)
{
System.out.println(">> Starting SimpleServer");
try
{
socket = new ServerSocket(port);
incoming = socket.accept();
readerIn = new BufferedReader(new InputStreamReader(incoming.getInputStream()));
printOut = new PrintStream(incoming.getOutputStream());
printOut.println("Enter EXIT to exit.\r");
out("Enter EXIT to exit.\r");
boolean done = false;
while (!done)
{
String str = readerIn.readLine();
if (str == null)
{
done = true;
}
else
{
out("Echo: " + str + "\r");
if(str.trim().equals("EXIT"))
{
done = true;
}
}
incoming.close();
}
}
catch (Exception e)
{
System.out.println(e);
}
}
private void out(String str)
{
printOut.println(str);
System.out.println(str);
}
}
このドキュメントを SimpleServer.java という名前でハードディスクに保存し、Java コンパイラーでコンパイルして、SimpleServer.class という Java クラスを作成します。
コマンドプロンプトを開き、
java SimpleServer
と入力して XMLSocket サーバーを起動します。SimpleServer.class ファイルはローカルコンピューター上またはネットワーク上のどこに配置しても使用できます。Web サーバーのルートディレクトリに置く必要はありません。
ファイルを置いた場所が Java クラスパスに含まれていないためにサーバーを起動できない場合は、「
java -classpath . SimpleServer
」と入力すると、起動できることがあります。
アプリケーションから XMLSocket に接続するには、次のように XMLSocket クラスの新しいインスタンスを作成し、ホスト名とポート番号を指定して
XMLSocket.connect()
メソッドを呼び出します。
var xmlsock:XMLSocket = new XMLSocket();
xmlsock.connect("127.0.0.1", 8080);
サーバーからデータを受信するたびに、
data
イベント(
flash.events.DataEvent.DATA
)が送出されます。
xmlsock.addEventListener(DataEvent.DATA, onData);
private function onData(event:DataEvent):void
{
trace("[" + event.type + "] " + event.data);
}
XMLSocket サーバーにデータを送信するには、
XMLSocket.send()
メソッドを使用して XML オブジェクトまたは XML ストリングを渡します。Flash Player によってパラメーターが String オブジェクトに変換され、その内容に終端を示すゼロ(0)バイトを付加したデータが XMLSocket サーバーに送信されます。
xmlsock.send(xmlFormattedData);
XMLSocket.send()
メソッドは、データが正常に転送されたかどうかを示す値を返しません。データの送信中にエラーが発生した場合は、IOError エラーがスローされます。
XML ソケットサーバーに送信する個々のメッセージには、末尾に終端の改行文字(
¥n
)を付ける必要があります。
詳しくは、「
XMLSocket
」を参照してください。