ちくのう症(蓄膿症)は「菌」が原因!?

TCP/IPソケットプログラミングJava編という本を使って通信ネットワークの勉強をしています。

この本は一通り読んでプログラムの動作確認を行ったのですが、第4章の圧縮サーバのプログラムの動作確認が取れません。
圧縮サーバのプログラムは、本に乗っていなくて自作する必要があります。

どなたかこのプログラムを作成した方いらっしゃいませんか?
いらしたらソースコードを教えていただきたいです。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

これかな?


よくは知らないけど。

参考URL:http://cs.baylor.edu/~donahoo/practical/JavaSock …

この回答への補足

この問題は、無事解決しました。
アドバイスありがとうございました。

補足日時:2009/10/26 00:27
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

探していただいたサイトには、圧縮サーバのコードが載っていませんでした。CompressProtocolFactory.javaを使って圧縮サーバを自作しなければいけないようです。(ちなみにサイトにはCompressProtocolFactory.javaを使わない圧縮サーバのコードは乗っていますが、CompressProtocolFactory.javaを使って起動させたいのです。)

圧縮サーバは、サイトにあるCompressClient.javaと通信して、圧縮ファイルを作成します。

CompressProtocolFactory.javaを使ったプログラムを自作しました。
クライアント側が未圧縮バイトを送信し、サーバはそれを圧縮します。
そのあとサーバが圧縮したバイトをクライアントに送信します。

ここまではうまくいくのですが、その後(クライアントが送信されたバイトを読み込み、ファイルに書き込む)ところから、うまく起動しません。起動しないというよりは、読み込みの前で動作が止まっているような感じです。

私の書いたソースがおかしいのだと思うのですが、自分ではどこがおかしいのか分かりません。

おかしい部分が分かれば教えていただけないでしょうか?

下は自作したソースコードです。

package socket_129;

import java.net.*; // Socketに必要
import java.io.*; // IOException,[File]Input/OutputStreamに必要

public class CompressServer {
public static void main(String[] args) throws IOException {
if (args.length != 1) // 引数の数が正しいか調べる。
throw new IllegalArgumentException("Parameter(s): <Port>");

int port = Integer.parseInt(args[0]); // サーバポート
ServerSocket servSock = new ServerSocket(port); // クライアントの接続要求を受け付けるサーバソケットを生成する。
Logger logger = new ConsoleLogger(); // ログメッセージをコンソールに出力する。

for(;;){
Socket clntSock = servSock.accept(); // ブロックして接続を待つ。

ProtocolFactory protoFactory = new CompressProtocolFactory(); // CompressProtocolFactory()インスタンスを生成する。
protoFactory.createProtocol(clntSock, logger); // createProtocol()メソッドを実行する。
}
}
}

お礼日時:2009/10/25 02:42

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング