14 、基本的な Java プログラム - ネットワーク関連 -
技術情報 TOP へ

ここでは、HTTP や メールなどネットワーク操作に関する簡単なサンプルを記述いたします。

Java が初めての方は、まずは、基本的な Java プログラム - 簡単な文字列の表示、数値の計算 -をご参照ください。


本サンプルの ( 1 ) 及び ( 2 ) などで使用する java.net.HttpURLConnection や java.io.FileOutputStream などの詳細については以下の、 Java API ( 5.0 ) のドキュメントを参照ください。

Java 2 Platform Standard Edition 5.0 API 仕様



( 1 ) Web サーバからファイルをダウンロードする。

Web サーバからファイルをダウンロードします。
import java.net.*;
import java.io.*;

public class HttpTest {
   public static void main(String args[]) {
	try{ 
	/* 保存するファイルの FileOutputStream を構築します。
		引数にファイル名を指定します。*/
	FileOutputStream fos = new FileOutputStream("./sample.html");

	/* URLを構築します。引数にダウンロード先のURLを指定します。*/
	URL url = new URL("http://www.google.co.jp/");

	HttpURLConnection urlConnection= 
			(HttpURLConnection)url.openConnection();
	urlConnection.connect();

	int num;
	byte buf[] = new byte[4096];	  

	/* DataInputStreamを使用してファイルに書き出します。*/
	DataInputStream dis = 
		new DataInputStream(urlConnection.getInputStream());
	while((num=dis.read(buf))!=-1) {
		fos.write(buf,0,num);
	}
	dis.close();
	System.out.println("ダウンロード完了しました");

	}catch(Exception e){
	  System.out.println(e + "例外が発生しました");
	}
   }
}



( 2 ) Proxy サーバを経由して接続する

Proxy サーバを経由して接続します。
import java.net.*;
import java.io.*;

public class HttpTest {
   public static void main(String args[]) {
	try{ 

	/* Proxy サーバ名、ポート番号 */
	String  proxyHost = "proxy.co.jp";
	String  proxyPort  = "8080";

	/* システムプロパティに設定 */
	System.setProperty("http.proxyHost",proxyHost);
	System.setProperty("http.proxyPort",proxyPort);

	/* 保存するファイルの FileOutputStream を構築します。
		引数にファイル名を指定します。*/
	FileOutputStream fos = new FileOutputStream("./sample.html");

	/* URLを構築します。引数にダウンロード先のURLを指定します。*/
	URL url = new URL("http://www.google.co.jp/");

	HttpURLConnection urlConnection= 
			(HttpURLConnection)url.openConnection();
	urlConnection.connect();

	int num;
	byte buf[] = new byte[4096];	  

	/* DataInputStreamを使用してファイルに書き出します。*/
	DataInputStream dis = 
		new DataInputStream(urlConnection.getInputStream());
	while((num=dis.read(buf))!=-1) {
		fos.write(buf,0,num);
	}
	dis.close();
	System.out.println("ダウンロード完了しました");

	}catch(Exception e){
	  System.out.println(e + "例外が発生しました");
	}
   }
}


( 2 ) JavaMailを使用してSMTPメールを送信する。

Java には、メール関連の処理に便利なライブラリー JavaMail があります。ここでは JavaMail を使用したSMTPメールを送信を行います。 JavaMail を使用するには、JAF ( JavaBeans Activation Framework ) も必要となります。
( ここでは本ページ記述時の最新版である JavaMail 1.4 と JAF 1.1 を使用しています。 )

下記のページより JavaMail と JAP をダウンロードし、ダウンロードしたファイルを解凍、 解凍したディレクトリより mail.jar と activation.jar をクラスパスに追加します。

J2EE JavaMail

JAF Downloads

クラスパスの設定は、以下のページを参考にしてください。

クラスパスの簡単な説明と設定 - コマンド編、Eclipse 編-

本サンプルで使用する JavaMail 関連のクラスの詳細は以下の JavaMail API documentation を参照ください。

JavaMail API documentation

toField には送り先のメールアドレス、fromField には送信元のメールアドレスを設定してください。
hostField には送り先のメールサーバを設定してください。
subjectField にはメールの題名、txtMsg にはメール本文、name には 送信者名を設定してください。

JavaMail を使用して SMTP メールを送信します。
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;


public class NetTest {
   public static void main(String args[]) {

	String toField = "ToTest@aaa.co.jp";
	String fromField = "FromTest@aaa.co.jp";
	String hostField = "host.smtp.co.jp";
	String subjectField = "Hello!";
	String txtMsg = "Mail send to test";
	String name = "name";

	try{ 
	
	Properties props = new Properties();

	/* SMTPサーバを第二引数に設定します。*/
	props.put("mail.smtp.host",hostField);

	Session mailConnection = Session.getDefaultInstance(props,null);
	MimeMessage msg = new MimeMessage(mailConnection);

	/* 自分のメールアドレスと自分の名前を第一、第二引数に設定します。*/
	msg.setFrom(new InternetAddress(fromField,name,"iso-2022-jp"));

	/* 相手のメールアドレスを第二引数にします。*/
	msg.setRecipients(Message.RecipientType.TO,toField);

	/* メールのタイトルを第一引数にします。*/
	msg.setSubject(subjectField,"iso-2022-jp");

	/* メールの内容を第一引数にします。*/
	 msg.setText(txtMsg,"iso-2022-jp");      

	/* 送信します
	Transport.send(msg);*/
	System.out.println("送信完了しました");

	}catch(Exception e){
	  System.out.println(e + "例外が発生しました");
	}
   }
}
技術情報 TOP へ


Google
WWW を検索 whitemark.co.jp を検索
[ 株式会社ホワイトマーク TOP ]   [ 免責事項 ]

Copyright © 2006 by WhiteMark, All rights Reserved. Last Modified: 2006/05