独習Java ・ 12.1 インターネットアドレス ・ 12.2 サーバーソケットとソケット 12月 19日 小笠原 一恵
インターネットアドレス 32ビットの長さを持ち、インターネットに接続されたマシンを区別するのに使う DNS 「www.mycompany.com」 : ドットストリング表示 DNS 「28.34.29.56」 : ドット10進数表示 DNS : Domain Name System
InetAddress の良く使われるメソッド getByName() static InetAddress getByName(String hostName) throws UnknownHostExceptin // 指定されたホストのIPアドレスを取得 getAllByName() static InetAddress[] getAllByName(String hostName) throws UnknownHostExceptin // ホストが複数ある場合 getLocalHost() static InetAddress getLocalHost() throws UnknownHostExceptin // ローカルホストのアドレスを取得
出力結果 localhost (マシン自身) 127.0.0.1 else import java.net.*; System.out.print(bytes[j]+256); } System.out.println(""); catch (Exception e) { e.printStackTrace(); import java.net.*; class InetAddressDemo{ public static void main (String args[]){ try{ InetAddress ias[]= InetAddress.getAllByName(args[0]); for(int i=0;i<ias.length;i++){ System.out.println(ias[i].getHostName()); System.out.println(ias[i].getHostAddress()); byte bytes[]=ias[i].getAddress(); for(int j=0;j<bytes.length;j++){ if(j>0) System.out.print("."); if(bytes[j]>=0) System.out.print(bytes[j]); 出力結果 localhost 127.0.0.1 (マシン自身)
サーバーソケットとソケット ソケット : 2つのマシン間の双方向通信経路の一端 ソケット : 2つのマシン間の双方向通信経路の一端 ServerSocket クラス : サーバーアプリケーションを作成する時に使用 コンストラクタ ServerSoket(int port) throws IOExeption メソッド Soket accept() throws IOExeption // 接続要求を待機し、受け取る Void close() throws IOExeption // サーバーソケットのクローズ port : クライアントからの要求を監視するためのソフトウェアポート
ソケットクラス Socket : クライアントとサーバーのデータ交換を行なう コンストラクタ Soket(String hostName,int port) throwsUnknownHostExeption,IOExeption メソッド InputStram getInputStream() throws IOExeption // 入力ストリームの取得 OutputStram getOutputStream() throws IOExeption // 出力ストリームの取得 Void close() throws IOExeption // ソケットのクローズ
宿題 InetAddress のgetLocalHost()メソッドの使い方を示すアプリケーションを作成し、ローカルホストのアドレスを表示してください
解答 import java.util.*; class Hashtablejava{ 解答 import java.util.*; class Hashtablejava{ public static void main (String args[]){ Hashtable hashtable =new Hashtable(); hashtable.put("Shinnou","Hiroyuki"); hashtable.put("Konno","Kenichi"); hashtable.put("Ooshiro","Arisa"); hashtable.put("Tokita","Youichi"); hashtable.put("Fujii","Takeaki"); hashtable.put("Yuuki","Takashi"); hashtable.put("Ogasawara","Kazue"); Enumeration e = hashtable.keys(); while(e.hasMoreElements()){ Object k=e.nextElement(); Object v=hashtable.get(k); System.out.println("key="+k+";value="+v); }