Foundation 1.1.2

javax.microedition.io
インタフェース ServerSocketConnection

すべてのスーパーインタフェース:
Connection, StreamConnectionNotifier

public interface ServerSocketConnection
extends StreamConnectionNotifier

このインタフェースは、サーバーソケットストリーム接続を定義します。  

サーバーソケットのアクセスには、ホストを含まない汎用接続文字列が使用されます。たとえば socket://:79 は、ポート 79 上の着信サーバーソケットを表します。ホストの検出には、getLocalAddress メソッドを使用します。

acceptAndOpen() メソッドは SocketConnection インスタンスを返します。SocketConnection は、StreamConnection の通常の動作に加えて、ライブ接続の IP 端点アドレスにアクセスできます。また、接続の特定のアプリケーションの使用に関連したバッファリングおよびタイミング遅延を制御するソケットオプションも利用できます。

サーバーソケット接続へのアクセスは、デバイスのセキュリティーポリシーによって制限されることがあります。Connector.open は初期サーバーソケット接続のアクセスのチェックを実行し、acceptAndOpen は新しい SocketConnection が返される前のチェックを実行する必要があります。

サーバーソケットでは、接続 URL 文字列のホストパラメータとポートパラメータを省略して、使用可能なポートを動的に選択できます。たとえば、socket:// により、システムによって割り当てられたポート上の着信サーバーソケットを定義します。割り当て済みのポート番号を検出するには、getLocalPort メソッドを使用します。

Connector.open() 文字列の BNF 形式

URI は、次に示す BNF 構文に準拠する必要があります。URI がこの構文に準拠していない場合、IllegalArgumentException がスローされます。

<socket_connection_string> ::= "socket://" | "socket://"<hostport>
<hostport> ::= host ":"port
<host> ::= 着信接続では省略 (SocketConnection を参照)
<port> ::= ポート番号の数値 (システム割り当てポートでは省略)

次に、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);

   // 接続の入力ストリームを取得
   DataInputStream is = sc.openDataInputStream();

   // 接続の出力ストリームを取得
   DataOutputStream os = sc.openDataOutputStream();

   // 入力データの読み取り
   String result = is.readUTF();

   // データを送信元にエコーバック
   os.writeUTF(result);

   // すべて終了
   is.close();
   os.close();
   sc.close();
   scn.close();
   ..
 

導入されたバージョン:
MIDP 2.0

メソッドの概要
 String getLocalAddress()
          ソケットのバインド先のローカルアドレスを取得します。
 int getLocalPort()
          このソケットのバインド先のローカルポートを返します。
 
インタフェース javax.microedition.io.StreamConnectionNotifier から継承されたメソッド
acceptAndOpen
 
インタフェース javax.microedition.io.Connection から継承されたメソッド
close
 

メソッドの詳細

getLocalAddress

String getLocalAddress()
                       throws IOException
ソケットのバインド先のローカルアドレスを取得します。

これは、外部システムからこのソケット接続の端点に接続するためのホストアドレス (IP 番号) です。IP アドレスは動的に割り当て可能なので、IP 番号の再割り当てを考慮して、堅牢なリモートアプリケーションを使用する必要があります。

ローカルホスト名 (使用可能な場合) には、System.getProperty("microedition.hostname") からアクセスできます。

戻り値:
ソケットのバインド先のローカルアドレス
例外:
IOException - 接続が終了した場合
関連項目:
SocketConnection

getLocalPort

int getLocalPort()
                 throws IOException
このソケットのバインド先のローカルポートを返します。

戻り値:
このソケットの接続先のローカルポート番号
例外:
IOException - 接続が終了した場合
関連項目:
SocketConnection

Foundation 1.1.2

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。