com.JRcServer.net.umsg.engine
クラス UdpMessageEngine

java.lang.Object
  上位を拡張 com.JRcServer.net.umsg.engine.UdpMessageEngine

public class UdpMessageEngine
extends java.lang.Object

UDP-Messageエンジン.

非同期通信を行うエンジン処理をサポートします.
このオブジェクトはUDPプロトコルによる長文送信/受信を可能にした 通信プロトコルです.通常UDPでは、通信到達を保証しませんがこのオブジェクトは 通信到達を保証します.
しかしUDPであることから、到達順位は保証されません.
このオブジェクトの利点として、TCP/IPとは違い相互接続数が多い場合、コストが少なくて済みます.
しかし、相互接続数が少ない場合はTCP/IPを利用した方が、コストが少なく済みます.
利用状況に応じて利用してください.

導入されたバージョン:
JDK 1.3
バージョン:
1.00, 2005/03/30
作成者:
Masahito Suzuki

コンストラクタの概要
UdpMessageEngine()
          コンストラクタ.
 
メソッドの概要
 void close()
          クローズ処理.
 int getDestroyReceivePacketTime()
          受信パケット破棄時間を取得.
 int getPacketLength()
          送受信パケット長を取得.
 int getReceiveCoreThread()
          受信コアスレッド数を取得.
 java.net.InetAddress getReceiveLocalAddress()
          受信ローカルアドレスを取得.
 int getReceiveLocalPort()
          受信ローカルポートを取得.
 int getReceiveThread()
          受信スレッド数を取得.
 int getSendCoreThread()
          送信コアスレッド数を取得.
 java.net.InetAddress getSendLocalAddress()
          送信ローカルアドレスを取得.
 int getSendLocalPort()
          送信ローカルポートを取得.
 int getSendThread()
          送信スレッド数を取得.
 boolean isOpen()
          オープンチェック.
 void open()
          オープン処理.
 void open(java.net.InetAddress sndAddr, int sndPort, int sndCThread, int sndThread, int sndBuffer, java.net.InetAddress rcvAddr, int rcvPort, int rcvCThread, int rcvThread, int rcvBuffer, int rcvDestroyTime, int packetLength, ResourceType sndResourceType, ResourceType rcvResourceType)
          オープン処理.
 void open(int sndPort, int sndThread, int rcvPort, int rcvThread, int packetLength)
          オープン処理.
 void open(int sndPort, int sndThread, int rcvPort, int rcvThread, int packetLength, ResourceType resourceType)
          オープン処理.
 byte[] receive(ConnectAddress out)
          受信処理.
 byte[] receive(ConnectAddress out, int timeout)
          受信処理.
 BinResource receiveByBinResource(ConnectAddress out)
          受信処理.
 BinResource receiveByBinResource(ConnectAddress out, int timeout)
          受信処理.
 void send(ConnectAddress conn, byte[] binary)
          送信処理.
 void send(java.net.InetAddress addr, int port, byte[] binary)
          送信処理.
 void sendByBinResource(ConnectAddress conn, BinResource binary)
          送信処理.
 void sendByBinResource(java.net.InetAddress addr, int port, BinResource binary)
          送信処理.
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

UdpMessageEngine

public UdpMessageEngine()
コンストラクタ.

メソッドの詳細

open

public final void open()
オープン処理.

通信処理をオープンします.


open

public final void open(int sndPort,
                       int sndThread,
                       int rcvPort,
                       int rcvThread,
                       int packetLength)
                throws InputException
オープン処理.

通信処理をオープンします.

パラメータ:
sndPort - 送信バインド先ポート番号を設定します.
[-1]を設定した場合、空いているポート番号が割り当てられます.
sndThread - 送信スレッドサイズを設定します.
設定可能な最小値は[1]です.
設定可能な最大値は[4]です.
rcvPort - 受信バインド先ポート番号を設定します.
[-1]を設定した場合、空いているポート番号が割り当てられます.
rcvThread - 受信スレッドサイズを設定します.
設定可能な最小値は[1]です.
設定可能な最大値は[4]です.
packetLength - パケットサイズを設定します.
設定可能な最小値は[512]です.
設定可能な最大値は[8192]です.
例外:
InputException - 入力例外.

open

public final void open(int sndPort,
                       int sndThread,
                       int rcvPort,
                       int rcvThread,
                       int packetLength,
                       ResourceType resourceType)
                throws InputException
オープン処理.

通信処理をオープンします.

パラメータ:
sndPort - 送信バインド先ポート番号を設定します.
[-1]を設定した場合、空いているポート番号が割り当てられます.
sndThread - 送信スレッドサイズを設定します.
設定可能な最小値は[1]です.
設定可能な最大値は[4]です.
rcvPort - 受信バインド先ポート番号を設定します.
[-1]を設定した場合、空いているポート番号が割り当てられます.
rcvThread - 受信スレッドサイズを設定します.
設定可能な最小値は[1]です.
設定可能な最大値は[4]です.
packetLength - パケットサイズを設定します.
設定可能な最小値は[512]です.
設定可能な最大値は[8192]です.
resourceType - リソースタイプを設定します.
例外:
InputException - 入力例外.

open

public final void open(java.net.InetAddress sndAddr,
                       int sndPort,
                       int sndCThread,
                       int sndThread,
                       int sndBuffer,
                       java.net.InetAddress rcvAddr,
                       int rcvPort,
                       int rcvCThread,
                       int rcvThread,
                       int rcvBuffer,
                       int rcvDestroyTime,
                       int packetLength,
                       ResourceType sndResourceType,
                       ResourceType rcvResourceType)
                throws InputException
オープン処理.

通信処理をオープンします.

パラメータ:
sndAddr - 送信バインド先アドレスを設定します.
[null]を設定した場合、デフォルト値となります.
sndPort - 送信バインド先ポート番号を設定します.
[-1]を設定した場合、空いているポート番号が割り当てられます.
sndCThread - 送信コアスレッドサイズを設定します.
設定可能な最小値は[1]です.
設定可能な最大値は[4]です.
sndThread - 送信スレッドサイズを設定します.
設定可能な最小値は[1]です.
設定可能な最大値は[4]です.
sndBuffer - 送信バッファ長を設定します.
設定単位は[バイト]です.
rcvAddr - 受信バインド先アドレスを設定します.
[null]を設定した場合、デフォルト値となります.
rcvPort - 受信バインド先ポート番号を設定します.
[-1]を設定した場合、空いているポート番号が割り当てられます.
rcvCThread - 受信コアスレッドサイズを設定します.
設定可能な最小値は[1]です.
設定可能な最大値は[4]です.
rcvThread - 受信スレッドサイズを設定します.
設定可能な最小値は[1]です.
設定可能な最大値は[4]です.
rcvBuffer - 受信バッファ長を設定します.
設定単位は[バイト]です.
rcvDestroyTime - 受信パケット削除時間を設定します.
この値は0以上を指定する必要があります.
また、設定単位は[ミリ秒]です.
packetLength - パケットサイズを設定します.
設定可能な最小値は[512]です.
設定可能な最大値は[8192]です.
sndResourceType - 送信リソースタイプを設定します.
rcvResourceType - 受信リソースタイプを設定します.
例外:
InputException - 入力例外.

close

public final void close()
クローズ処理.

オープン状態のオブジェクトをクローズします.


send

public final void send(java.net.InetAddress addr,
                       int port,
                       byte[] binary)
送信処理.

電文送信処理を実施します.

パラメータ:
addr - 送信対象のアドレスを設定します.
port - 送信対象のポート番号を設定します.
binary - 送信電文を設定します.

send

public final void send(ConnectAddress conn,
                       byte[] binary)
送信処理.

電文送信処理を実施します.

パラメータ:
conn - 送信対象のアドレス+ポート番号を設定します.
binary - 送信電文を設定します.

sendByBinResource

public final void sendByBinResource(java.net.InetAddress addr,
                                    int port,
                                    BinResource binary)
送信処理.

電文送信処理を実施します.

パラメータ:
addr - 送信対象のアドレスを設定します.
port - 送信対象のポート番号を設定します.
binary - 送信電文を設定します.

sendByBinResource

public final void sendByBinResource(ConnectAddress conn,
                                    BinResource binary)
送信処理.

電文送信処理を実施します.

パラメータ:
conn - 送信対象のアドレス+ポート番号を設定します.
binary - 送信電文を設定します.

receive

public final byte[] receive(ConnectAddress out)
受信処理.

受信処理を実施します.

パラメータ:
out - 受信元のアドレス/ポート番号が返されます.
[null]を設定した場合、受信元のアドレス/ポート番号は取得されません.
戻り値:
byte[] 受信情報が返されます.
[null]が返された場合、受信情報は存在しません.

receive

public final byte[] receive(ConnectAddress out,
                            int timeout)
                     throws ConnectTimeoutException,
                            ExecutionException
受信処理.

受信処理を実施します.

パラメータ:
out - 受信元のアドレス/ポート番号が返されます.
[null]を設定した場合、受信元のアドレス/ポート番号は取得されません.
timeout - 受信タイムアウト値を設定します.
[0]以下を設定した場合、無限待ちになります.
また、設定単位は[ミリ秒]です.
戻り値:
byte[] 受信情報が返されます.
例外:
ConnectTimeoutException - 受信タイムアウト例外.
ExecutionException - 実行例外.

receiveByBinResource

public final BinResource receiveByBinResource(ConnectAddress out)
受信処理.

受信処理を実施します.

パラメータ:
out - 受信元のアドレス/ポート番号が返されます.
[null]を設定した場合、受信元のアドレス/ポート番号は取得されません.
戻り値:
BinResource 受信情報が返されます.
[null]が返された場合、受信情報は存在しません.

receiveByBinResource

public final BinResource receiveByBinResource(ConnectAddress out,
                                              int timeout)
                                       throws ConnectTimeoutException,
                                              ExecutionException
受信処理.

受信処理を実施します.

パラメータ:
out - 受信元のアドレス/ポート番号が返されます.
[null]を設定した場合、受信元のアドレス/ポート番号は取得されません.
timeout - 受信タイムアウト値を設定します.
[0]以下を設定した場合、無限待ちになります.
また、設定単位は[ミリ秒]です.
戻り値:
BinResource 受信情報が返されます.
[null]が返された場合、受信情報は存在しません.
例外:
ConnectTimeoutException - 受信タイムアウト例外.
ExecutionException - 実行例外.

getSendLocalAddress

public final java.net.InetAddress getSendLocalAddress()
送信ローカルアドレスを取得.

送信ローカルアドレスを取得します.

戻り値:
InetAddress 送信ローカルアドレスが返されます.

getSendLocalPort

public final int getSendLocalPort()
送信ローカルポートを取得.

送信ローカルポート番号を取得します.

戻り値:
int 送信ローカルポート番号が返されます.

getSendCoreThread

public final int getSendCoreThread()
送信コアスレッド数を取得.

送信コアスレッド数を取得します.

戻り値:
int 送信コアスレッド数が返されます.

getSendThread

public final int getSendThread()
送信スレッド数を取得.

送信スレッド数を取得します.

戻り値:
int 送信スレッド数が返されます.

getReceiveLocalAddress

public final java.net.InetAddress getReceiveLocalAddress()
受信ローカルアドレスを取得.

受信ローカルアドレスを取得します.

戻り値:
InetAddress 受信ローカルアドレスが返されます.

getReceiveLocalPort

public final int getReceiveLocalPort()
受信ローカルポートを取得.

受信ローカルポート番号を取得します.

戻り値:
int 受信ローカルポート番号が返されます.

getReceiveCoreThread

public final int getReceiveCoreThread()
受信コアスレッド数を取得.

受信コアスレッド数を取得します.

戻り値:
int 受信コアスレッド数が返されます.

getReceiveThread

public final int getReceiveThread()
受信スレッド数を取得.

受信スレッド数を取得します.

戻り値:
int 受信スレッド数が返されます.

getPacketLength

public final int getPacketLength()
送受信パケット長を取得.

送受信を行うパケット長を取得します.

戻り値:
int 送受信パケット長が返されます.

getDestroyReceivePacketTime

public final int getDestroyReceivePacketTime()
受信パケット破棄時間を取得.

受信パケット破棄時間を取得します.

戻り値:
int 受信パケット破棄時間が返されます.

isOpen

public final boolean isOpen()
オープンチェック.

オープン状態であるかチェックします.

戻り値:
boolean オープン状態か返されます.
[true]が返された場合オープン状態です.
[false]が返された場合クローズ状態です.