|
Foundation 1.1.2 | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface SocketConnection
このインタフェースは、ソケットストリーム接続を定義します。
ソケットのアクセスには、汎用接続文字列と明示的に指定されたホストおよびポート番号が使用されます。ホストは、完全修飾のホスト名または IPv4 番号で指定できます。たとえば、socket://host.com:79
では、host.com
システムのポート 79
上のソケットがターゲットになります。
RFC 1900 は、IP 番号の再割り当ての結果を最適化するため、IP 番号ではなく名前を使用することを推奨しています。
すべての StreamConnection
は、接続に関連付けられた入出力を処理するため、Connection
オブジェクトと、InputStream
および OutputStream
を提供します。これらのインタフェースは、それぞれ固有の close()
メソッドを持っています。ソケット接続を使用した双方向通信をサポートするシステムでは、入力ストリームまたは出力ストリームをクローズすると、クローズする側だけがシャットダウンされるはずです。たとえば、InputStream
をクローズしても、OutputStream
は引き続きデータを送信できます。
入力ストリームまたは出力ストリームをクローズしたあと、再度オープンするには、Connector.open()
を呼び出す必要があります。ストリームの再オープンが試行されると、アプリケーションは IOException
を受け取ります。
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();
フィールドの概要 | |
---|---|
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 |
フィールドの詳細 |
---|
static final byte DELAY
static final byte LINGER
static final byte KEEPALIVE
static final byte RCVBUF
static final byte SNDBUF
メソッドの詳細 |
---|
void setSocketOption(byte option, int value) throws IllegalArgumentException, IOException
オプションは、下位レベルのネットワークコードに、アプリケーションがソケット接続の処理で使用する予定の使用法のパターンを通知します。
バッファーサイズを割り当てるため setSocketOption
を呼び出すと、プラットフォームが配下のネットワーク入出力バッファーのサイズを設定するときのヒントになります。getSocketOption
を呼び出して、システムが使用するサイズを確認できます。システムは、現在のネットワーク情報から得られる最大転送単位 (MTU) および最大セグメントサイズ (MSS) のデータのスループットが改善されるように、バッファーサイズを調整できます。
option
- ソケットオプション識別子 (KEEPALIVE、LINGER、
SNDBUF、RCVBUF、または DELAY)value
- 指定されたオプションの数値
IllegalArgumentException
- 値が有効でない (負の値など) か、オプション識別子が有効でない場合
IOException
- 接続が終了した場合getSocketOption(byte)
int getSocketOption(byte option) throws IllegalArgumentException, IOException
option
- ソケットオプション識別子 (KEEPALIVE、LINGER、
SNDBUF、RCVBUF、または DELAY)
IllegalArgumentException
- オプション識別子が有効でない場合
IOException
- 接続が終了した場合setSocketOption(byte, int)
String getLocalAddress() throws IOException
これは、外部システムからこのソケット接続の端点に接続するためのホストアドレス (IP 番号) です。IP アドレスは動的に割り当て可能なので、IP 番号の再割り当てを考慮して、堅牢なリモートアプリケーションを使用する必要があります。
ローカルホスト名 (使用可能な場合) には、System.getProperty("microedition.hostname")
からアクセスできます。
IOException
- 接続が終了した場合ServerSocketConnection
int getLocalPort() throws IOException
IOException
- 接続が終了した場合ServerSocketConnection
String getAddress() throws IOException
IOException
- 接続が終了した場合int getPort() throws IOException
IOException
- 接続が終了した場合
|
Foundation 1.1.2 | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。