0

TCP パケットを受信し、その内容を読み取る Java サーバー ソケット アプリケーションを作成したいと考えています。パケットの内容に基づいて、いくつかのアクションを実行します。コンテンツを読み取って文字列 System.out.println(sb.toString()); を出力するところまでたどり着きました。しかし、(a) すべてのコンテンツが印刷されるわけではなく、(b) ネットワークの順序でコンテンツを処理する方法がわかりません。例は、HTTP パケットを受信し、ヘッダーから「Content-Length」または「User-Agent」を報告することです。任意の例をいただければ幸いです。

public static void main(String[ ] args){

PrintWriter out = null;
BufferedReader in = null;
int bufferSize = 0;


try{
    String message = args[0];
    int count = 0;

    ServerSocket connectionSocket = null;
    try {
        connectionSocket = new ServerSocket(4444);
        System.out.println("Server started");
    } catch (IOException e) {
        System.err.println("Could not listen on port: 4444.");
        System.exit(1);
    }

    Socket clientSocket = null;
    try {
        while(true){
            count++;
            clientSocket = connectionSocket.accept();
            System.out.println("TCP packet received… " +  count);
            InputStream is = clientSocket.getInputStream();

            out = new PrintWriter(clientSocket.getOutputStream());
            in = new BufferedReader(new InputStreamReader(is));

            StringBuilder sb = new StringBuilder();
            String line = null;


            while ((line = in.readLine()) != null) {
                sb.append(line + "\n");
            }
            System.out.println(sb.toString());


            clientSocket.close();
        }           
    } catch (IOException e) {
        System.err.println("Accept failed.");
        System.exit(1);
    }
}
catch(Exception e){
    e.printStackTrace();
}
}
4

0 に答える 0