|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface ServerSocketConnection
このインタフェースはサーバー・ソケット・ストリーム接続を定義しています。
サーバー・ソケットはホスト名を省略した Generic Connection フレームワーク文字列を使用することでアクセスします。
例えば"socket://:79"
はポート番号 79
でインバウンド(外部から内側への接続を行う)のサーバー・ソケットを意味します。
getLocalAddress()
メソッドを呼び出すことでホストの IP アドレスを知ることができます。
StreamConnectionNotifier
インタフェースで定義された acceptAndOpen()
メソッドを呼び出すことで SocketConnection
オブジェクトを返します。
通常の StreamConnection
の振る舞いに加えて、SocketConnection
は有効な接続の IP エンドポイントアドレスにアクセスして、ソケット・オプションを用いたバッファリングやタイミングの遅れなどの接続に対して、特定のアプリケーションによるネットワークの使用法に関連付けたコントロールをサポートします。
サーバー・ソケット接続へのアクセスはデバイスのセキュリティ・ポリシーによって制限されることがあります。
Connector
クラスの open
メソッドは、最初にサーバー・ソケット接続にアクセスがあるか否かをチェックしなければならず、
acceptAndOpen()
メソッドはそれぞれに新しい SocketConnection
オブジェクトを返す前にチェックしなければなりません。
接続に使用する URL 文字列のホストとポートのパラメータの両方を省略することにより、ダイナミックに利用可能なポートを選択するサーバー・ソケットを使用することができます。
例えば、"socket://"
はシステムによって割り当てられるダイナミックなポート番号のインバウンドのサーバー・ソケットを意味します。
割り当てられたポート番号は getLocalPort()
メソッドによって取得することができます。
URI は以下で指定する BNF 構文規則に従わなければなりません。
URI がこの構文規則に合致しない場合は IllegalArgumentException
を throw します。
<ソケット接続文字列> | ::= "socket://" | "socket://"<ホストとポート> |
<ホストとポート> | ::= <ホスト> ":" <ポート> |
<ホスト> | ::= インバウンド(内部向け)の接続ではホストは省略します。参照: SocketConnection |
<ポート> | ::= 数字によるポート番号(システムが割り当てるポート番号を使用する場合は省略します)。 |
ServerSocketConnection
を使用してループバックするサンプル・プログラムを以下に示します。
// ポート番号 1234 をリスニングするサーバー・ソケットを作成 ServerSocketConnection scn = (ServerSocketConnection) Connector.open("socket://:1234"); // 接続待ち SocketConnection sc = (SocketConnection) scn.acceptAndOpen(); // アプリケーション特性によるヒントをソケットに設定 sc.setSocketOption(DELAY, 0); sc.setSocketOption(LINGER, 0); sc.setSocketOption(KEEPALIVE, 0); sc.setSocketOption(RCVBUF, 128); sc.setSocketOption(SNDBUF, 128); // 接続から InputStream オブジェクトを取得 DataInputStream is = sc.openDataInputStream(); // 接続から OutputStream オブジェクトを取得 DataOutputStream os = sc.openDataOutputStream(); // 入力データを読み出す String result = is.readUTF(); // 読み出したデータを送信元にエコーバック os.writeUTF(result); // 接続を全てクローズ is.close(); os.close(); sc.close(); scn.close(); ..
メソッドの概要 | |
---|---|
String |
getLocalAddress()
ソケットと結び付けられているローカル・アドレスを返します。 |
int |
getLocalPort()
ソケットと結び付けられているローカル・ポートを返します。 |
インタフェース javax.microedition.io.StreamConnectionNotifier から継承されたメソッド |
---|
acceptAndOpen |
インタフェース javax.microedition.io.Connection から継承されたメソッド |
---|
close |
メソッドの詳細 |
---|
String getLocalAddress() throws IOException
ソケットと結び付けられているローカル・アドレスを返します。
外部のシステムからこのソケット接続の終了まで接続に使用することができるホスト・アドレス(IP アドレス)です。 IP アドレスはダイナミックに割り当てられる可能性があるため、リモート・アプリケーションは IP アドレスの再割り当てに対しての対策を持っている必要があります。
ローカルのホスト名を利用可能であるなら、System
クラスの getProperty
メソッドでシステム・プロパティ"microedition.hostname"
を読み出すことで取得できます。
IOException
- 接続がクローズしている場合に throw します。SocketConnection
int getLocalPort() throws IOException
ソケットと結び付けられているローカル・ポートを返します。
IOException
- 接続がクローズしている場合に throw します。SocketConnection
|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
公式仕様書原文の著作権表記等(※): Mobile Information Device Profile Specification ("Specification") Version: 2.0 Status: FCS Release: November 5, 2002 Copyright 2002 Sun Microsystems, Inc. and Motorola, Inc. All rights reserved. | ※ただしこの API リファレンスは英語仕様を一語一句正確に翻訳したものではなく、一度私が英語の仕様原文を読んだ上で元の意味と構造をなるべく保つように書き起こしたものです。このため一部は完全に異なる説明となっています。また CLDC 1.1 部分は同仕様の範囲外であるため、まったく参考とはしていません。 ※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。 |