隔離日記A's

雑記と将棋と巡回と

Javaでネットワーク

2006年07月06日 23時13分12秒 | 情報処理
■今研究のために勉強しているのが、サーバクライアントなものだったりするのです。
今までネットワークの勉強していなかったので意外と大変…
しかしJavaの場合、APIがしっかりしているので簡単なはずなわけです。

だからこれから書く備忘録は結構間違ってるかも。
自分以外は使えないと思いますので参考にしないようにw
あとクラスは紹介しませんが、原則
・java.ioクラス
・java.netクラス

の二つを使えばできると思います。細かくはAPIを見てください。


■基本的にソケットによる通信を行います。今回はサーバ側のお話。
まず、サーバ側でソケット作成し、通信許可を出します。
ServerSocketコンストラクタでサーバソケットを作成するわけです。
ただ実際作るときはポート指定するようです。

ServerSocket server;  // サーバソケット作成
server = new Serversocket(10000);  // 10000番ポートで受付


それからaccept()メソッドで通信許可をします。

Socket sock = server.accept();  // ソケットを作って通信許可


あとはデータ受信用にgetInputStream()メソッドを、
データ送信用にgetOutputStream()メソッドを準備します。
ファイル入出力と似たようなモンですが、種類がいっぱいあるようです。

/* 文字ストリームを受け取る送信用 */
OutputStreamWriter out =
  new OutputStreamWriter(sock.getOutputStream());


とりあえず最低限はこれだけ。
作業が済んだらclose()メソッドでソケットは閉じます。

sock.close();  // ソケットを閉じる


今まで説明した一連の流れは例外が発生する可能性があるので、
try・catchというものを利用して例外処理を行います。
加えて通常はいつでもサーバ側にアクセスできるようにwhile文で待ちます。

try{
  // サーバソケット作成
  while(true){
    // ソケットを作って通信許可
    // 作業
  }
  // ソケットを閉じる

} catch(IOException e){
  // 例外処理
}


流れ的にはこんな感じです。多分。
気力があれば次はクライアント側です。

最新の画像もっと見る