Foundation 1.1.2

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

すべてのスーパーインタフェース:
Connection, InputConnection, OutputConnection, StreamConnection
既知のサブインタフェースの一覧:
SecureConnection

public interface SocketConnection
extends StreamConnection

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

ソケットのアクセスには、汎用接続文字列と明示的に指定されたホストおよびポート番号が使用されます。ホストは、完全修飾のホスト名または IPv4 番号で指定できます。たとえば、socket://host.com:79 では、host.com システムのポート 79 上のソケットがターゲットになります。 

RFC 1900 は、IP 番号の再割り当ての結果を最適化するため、IP 番号ではなく名前を使用することを推奨しています。

ストリームのクローズ

すべての StreamConnection は、接続に関連付けられた入出力を処理するため、Connection オブジェクトと、InputStream および OutputStream を提供します。これらのインタフェースは、それぞれ固有の close() メソッドを持っています。ソケット接続を使用した双方向通信をサポートするシステムでは、入力ストリームまたは出力ストリームをクローズすると、クローズする側だけがシャットダウンされるはずです。たとえば、InputStream をクローズしても、OutputStream は引き続きデータを送信できます。

入力ストリームまたは出力ストリームをクローズしたあと、再度オープンするには、Connector.open() を呼び出す必要があります。ストリームの再オープンが試行されると、アプリケーションは IOException を受け取ります。

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

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

<socket_connection_string> ::= "socket://"<hostport>
<hostport> ::= host ":"port
<host> ::= ホスト名または IP アドレス (着信接続では省略。ServerSocketConnection を参照)
<port> ::= ポート番号の数値

次に、SocketConnection を使用してサンプルループバックプログラムにアクセスする例を示します。

   SocketConnection sc = (SocketConnection)
                         Connector.open("socket://host.com:79");
   sc.setSocketOption(SocketConnection.LINGER, 5);

   InputStream is  = sc.openInputStream();
   OutputStream os = sc.openOutputStream();

   os.write("\r\n".getBytes());
   int ch = 0;
   while(ch != -1) {
       ch = is.read();
   }

   is.close();
   os.close();
   sc.close();
 

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

フィールドの概要
static byte DELAY
          小さいバッファーの書き込み遅延を設定するソケットオプションです (0)。
static byte KEEPALIVE
          キープアライブ機能を設定するソケットオプションです (2)。
static byte LINGER
          データ出力を保留したまま接続を終了するまでの遅延時間を秒数で設定するソケットオプションです (1)。
static byte RCVBUF
          受信バッファーのサイズを設定するソケットオプションです (3)。
static byte SNDBUF
          送信バッファーのサイズを設定するソケットオプションです (4)。
 
メソッドの概要
 String getAddress()
          ソケットのバインド先のリモートアドレスを取得します。
 String getLocalAddress()
          ソケットのバインド先のローカルアドレスを取得します。
 int getLocalPort()
          このソケットのバインド先のローカルポートを返します。
 int getPort()
          このソケットのバインド先のリモートポートを返します。
 int getSocketOption(byte option)
          接続のソケットオプションを取得します。
 void setSocketOption(byte option, int value)
          接続のソケットオプションを設定します。
 
インタフェース javax.microedition.io.InputConnection から継承されたメソッド
openDataInputStream, openInputStream
 
インタフェース javax.microedition.io.Connection から継承されたメソッド
close
 
インタフェース javax.microedition.io.OutputConnection から継承されたメソッド
openDataOutputStream, openOutputStream
インタフェース javax.microedition.io.Connection から継承されたメソッド
close
-->  

フィールドの詳細

DELAY

static final byte DELAY
小さいバッファーの書き込み遅延を設定するソケットオプションです (0)。小さいバッファー操作のための Nagle アルゴリズムを無効にするには、ゼロを設定します。有効にするには、ゼロ以外を設定します。

関連項目:
定数フィールド値

LINGER

static final byte LINGER
データ出力を保留したまま接続を終了するまでの遅延時間を秒数で設定するソケットオプションです (1)。ゼロに設定すると、遅延時間が無効になります。

関連項目:
定数フィールド値

KEEPALIVE

static final byte KEEPALIVE
キープアライブ機能を設定するソケットオプションです (2)。KEEPALIVE をゼロに設定すると、この機能が無効になります。ゼロ以外を設定すると、この機能が有効になります。

関連項目:
定数フィールド値

RCVBUF

static final byte RCVBUF
受信バッファーのサイズを設定するソケットオプションです (3)。

関連項目:
定数フィールド値

SNDBUF

static final byte SNDBUF
送信バッファーのサイズを設定するソケットオプションです (4)。

関連項目:
定数フィールド値
メソッドの詳細

setSocketOption

void setSocketOption(byte option,
                     int value)
                     throws IllegalArgumentException,
                            IOException
接続のソケットオプションを設定します。  

オプションは、下位レベルのネットワークコードに、アプリケーションがソケット接続の処理で使用する予定の使用法のパターンを通知します。

バッファーサイズを割り当てるため setSocketOption を呼び出すと、プラットフォームが配下のネットワーク入出力バッファーのサイズを設定するときのヒントになります。getSocketOption を呼び出して、システムが使用するサイズを確認できます。システムは、現在のネットワーク情報から得られる最大転送単位 (MTU) および最大セグメントサイズ (MSS) のデータのスループットが改善されるように、バッファーサイズを調整できます。

パラメータ:
option - ソケットオプション識別子 (KEEPALIVE、LINGER、 SNDBUF、RCVBUF、または DELAY)
value - 指定されたオプションの数値
例外:
IllegalArgumentException - 値が有効でない (負の値など) か、オプション識別子が有効でない場合
IOException - 接続が終了した場合
関連項目:
getSocketOption(byte)

getSocketOption

int getSocketOption(byte option)
                    throws IllegalArgumentException,
                           IOException
接続のソケットオプションを取得します。

パラメータ:
option - ソケットオプション識別子 (KEEPALIVE、LINGER、 SNDBUF、RCVBUF、または DELAY)
戻り値:
指定されたオプションの数値。値が得られない場合は -1
例外:
IllegalArgumentException - オプション識別子が有効でない場合
IOException - 接続が終了した場合
関連項目:
setSocketOption(byte, int)

getLocalAddress

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

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

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

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

getLocalPort

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

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

getAddress

String getAddress()
                  throws IOException
ソケットのバインド先のリモートアドレスを取得します。アドレスは、リモートホスト名か、使用可能な場合は IP アドレスになります。

戻り値:
ソケットのバインド先のリモートアドレス
例外:
IOException - 接続が終了した場合

getPort

int getPort()
            throws IOException
このソケットのバインド先のリモートポートを返します。

戻り値:
このソケットの接続先のリモートポート番号
例外:
IOException - 接続が終了した場合

Foundation 1.1.2

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

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