teacup. [ 掲示板 ] [ 掲示板作成 ] [ 有料掲示板 ] [ ブログ ]

 投稿者
  題名
  内容 入力補助<IMG> youtubeの<IFRAME>タグが利用可能です。(詳細)
    
 URL
[ ケータイで使う ] [ BBSティッカー ] [ 書込み通知 ] [ 検索 ]


javaメモ

 投稿者:hiter  投稿日:2011年 6月15日(水)21時02分8秒
返信・引用
  ASH | サーバ | セキュリティ | Linux | FreeBSD | DB | Web | CGI | Perl | Java | XML | プログラム | ネットワーク | 標準 | Tips集
Javaネットワークプログラミング(Socket,URLConnection) JavaでSOCKETやURLConnectionを使った簡単なプログラムを参考に、Javaのネットワークプログラミングについて解説します。

Javaでブラウズ JavaのSOCKET機能を使って、Webサーバのソースデータを取得するサンプルソースです。指定したURLのHTTPヘッダとHTMLソースを表示します。
 PerlでブラウズのJava言語版です。正規表現を利用するため、OROパッケージが必要です。

 SOCKET機能は、java.net.*にありますので、java.net.*をimportします。また、SOCKETデータは、ストリームとして扱うため、java.io.*もimportします。データ転送の効率を考えて、BufferReader, BufferWriterを使っています。
 Socketオブジェクトを作成し、入出力バッファを関係付けます。 HTTPプロトコルに基づいて、GETコマンドをBufferWriterに出力すると、BufferReaderにソースが返却されます。 BufferWriterに出力する場合は、最後にバッファをflushする必要があります。
 以下のソース(Http.java)を入力してください。

Http.java
import java.io.*;
import java.net.*;
import org.apache.oro.text.perl.*;

/** Httpプロトコルによるソース表示 **/
public class Http {
  public static void main(String args[]) {
    String url;
    String host = "localhost";
    int port = 80;
    String path = "/";

    Socket sock;
    BufferedReader sockin;
    BufferedWriter sockout;
    String str;

    if (args.length > 0) {
      url = args[0];
      Perl5Util re = new Perl5Util();

      // ホスト名、ポート番号、パス名取得
      if (re.match("m!(http:)?(//)?([^:/]*)?(:([0-9]+)?)?(/.*)?!", url)) {
        if (re.group(3) != null) { host = re.group(3); }
        if (re.group(5) != null) { port = (new Integer(re.group(5))).intValue(); }
        if (re.group(6) != null) { path = re.group(6); }
      }
    } else {
      url = "http://" + host + ":" + port + path;
    }
//  System.out.println("host=" + host + ", port=" + port + ", path=" + path);

    try {
      // ソケットの作成
      sock = new Socket(host, port);
      sockin = new BufferedReader(new InputStreamReader(sock.getInputStream()));
      sockout = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));

      // HTTPリクエスト送信
      sockout.write("GET " + url +" HTTP/1.1\r\n");
      sockout.write("Host: " + host + "\r\n");
      sockout.write("Connection: close\r\n");
      sockout.write("\r\n");
      sockout.flush();

      // HTTPレスポンス受信
      while ((str = sockin.readLine()) != null) {
        System.out.println(str);
      }

      // ソケットのクローズ
      sockout.close();
      sockin.close();
      sock.close();

    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}


 ソースをコンパイルして実行します。

unix# javac Http.java
unix# java Http http://ash.jp/
HTTP/1.1 200 OK
Date: Fri, 22 Jun 2001 06:43:49 GMT
Server: Apache/1.3.20 (Unix)
Content-Type: text/html
Content-Length: 5752

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html lang="ja">
<head>
.......... (以下略)

URLConnectionでブラウズ Javaでは、Web上のデータを簡単にアクセスできるように、java.net.URLConnectionクラスがあります。 HTTP独自の機能を使うためには、java.net.HttpURLConnectionクラスがあります。
 ここでは、HttpURLConnectionクラスを使って、ホームページのソースを表示してみます。
 URLConnectionクラスを使うためには、URLオブジェクトが必要です。 URLオブジェクトの作成方法は、プロキシサーバを使う場合と、使わない場合で異なります。プロキシサーバを使う場合は、proxyHostとproxyPortに、プロキシサーバのホスト名とポート番号を設定します。
 URLオブジェクトを作成したら、openConnectionメソッドで、URL接続し、setRequestMethodメソッドでGETします。
 レスポンスはInputStreamとして返却されますので、行単位でアクセスするために、BuffredReaderクラスを使い、その内容を表示しています。

HttpUrl.java
import java.io.*;
import java.net.*;

/** Httpプロトコルによるソース表示(HttpURLConnectionクラス利用) **/
public class HttpUrl {
  public static void main(String args[]) {
    String url = "http://ash.jp/";
    String proxyHost = "";
    int    proxyPort = 8080;

    URL urlObj;
    HttpURLConnection urlCon;
    BufferedReader urlIn;
    String str;

    if (args.length > 0) {
      url = args[0];
    }
//  System.out.println("URL: " + url);

    try {
      // URLオブジェクトの作成
      if (proxyHost == null) {
        urlObj = new URL(url);
      } else {
        urlObj = new URL("http", proxyHost, proxyPort, url);
      }

      // URL接続
      urlCon = (HttpURLConnection)urlObj.openConnection();
      urlCon.setRequestMethod("GET");
      urlIn = new BufferedReader(new InputStreamReader(urlCon.getInputStream()));

      // HTMLソースの表示
      while ((str = urlIn.readLine()) != null) {
        System.out.println(str);
      }

      // URL切断
      urlIn.close();
      urlCon.disconnect();

    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}


 ソースをコンパイルして実行すると、SOCKETを使った場合と同じ結果が表示されます。

unix# javac HttpUrl.java
unix# java HttpUrl http://ash.jp/
HTTP/1.0 200 OK
Date: Fri, 25 Jun 2001 23:33:00 GMT
Server: Apache/1.3.20 (Unix)
Content-Type: text/html
Content-Length: 5752

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html lang="ja">
<head>
.......... (以下略)


--------------------------------------------------------------------------------

 
 

試しにKOEI SYSTEM VIEWER使ってみました。

 投稿者:FranticBone  投稿日:2010年 7月 8日(木)17時02分56秒
返信・引用
  開発環境の一つのPCスペックを調べてみました。

-------------------------------------------------------------
KOEI SYSTEM VIEWER Version 1.09

[システム]
本体CPU Intel(R) Celeron(R) CPU 2.40GHz
  周波数 2405 MHz
  CPUの個数 1
システムソフトウェア Microsoft Windows 2000 Professional Service Pack 4 (Build 2195)
メモリ 容量:479MB  :  空き領域:139MB
ハードディスク[C:\] 空き容量:8.47GB  総容量:14.99GB
ハードディスク[D:\] 空き容量:2.98GB  総容量:16.99GB
ビデオカード SiS 651C
  チップ SiS 651C
  VRAM 32.0MB
  DAC Internal
  ドライバ SiSGRV.dll
  バージョン 6.14.10.3730
  ベンダーID 4153
  デバイスID 25392
  サブシステムID 54501536
  改訂版レベル 0
  WHQL認証レベル 1
  ローカルVRAM容量 27.5MB
  利用可能VRAM容量 27.5MB
  利用可能テクスチャメモリ容量 65.0MB
  頂点シェーダ 0.0
  ピクセルシェーダ 0.0
DirectXのバージョン DirectX 9.0c (4.09.0000.0904)
サウンドカード Realtek AC97 Audio
  サウンドカードドライバ ALCXWDM.SYS
  バージョン 5.10.5580
  更新日時 05-14-2004  15:24:10
ネットワークカード SiS 900-Based PCI Fast Ethernet Adapter
  ネットワークドライバ SISNIC.sys
  バージョン 1.16.1.0
  更新日時 8-2-2002
CD-ROM/DVD-ROMドライブ RICOH CD-R/RW MP7125A
 

レンタル掲示板
/1