java高階特性與實戰專案——第五章-課後作業
阿新 • • 發佈:2019-02-16
1.編寫一個程式,查詢指定域名為www.taobao.com的所有可能地址。
import java.io.IOException; import java.net.InetAddress; import java.net.Socket; public class TestTao { public static void main(String[] args) { try { //顯示淘寶主伺服器地址 InetAddress add = InetAddress.getByName("www.taobao.com"); System.out.println("------淘寶的主伺服器地址------"); System.out.println(add); //顯示淘寶所伺服器地址 InetAddress[] adds = InetAddress.getAllByName("www.taobao.com"); System.out.println("------淘寶的所有伺服器地址------"); for(int i=0;i<adds.length;i++) { System.out.println(adds[i]); } }catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } }
2.模擬使用者登入,預設使用者資料,提示登陸成功或不成功的原因。
import java.io.Serializable;
/**
* 使用者類
* @author huang
*
*/
public class Uesr implements Serializable{
private String name;
public Uesr(String name) {
this.name = name;
}
public String getNaem() {
return name;
}
}
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; /** * 伺服器 * @author huang * */ public class Taobao { public static void main(String[] args) { try { ServerSocket server = new ServerSocket(8888); Socket socket = server.accept(); InputStream in = socket.getInputStream(); ObjectInputStream ob = new ObjectInputStream(in); Uesr uesr = (Uesr) ob.readObject(); if((uesr)!=null) { System.out.println("我是伺服器,登入的資訊為:"+uesr.getNaem()); } if(uesr.getNaem().equals("使用者一")) { System.out.println("存在該使用者,登陸成功!"); }else { System.out.println("對不起,沒有該使用者,已通知客戶端登入失敗!"); } ob.close(); in.close(); socket.close(); server.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
import java.io.IOException; import java.io.InputStream; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.net.Socket; import java.util.Scanner; /** * 客戶端 * @author huang * */ public class MyServer { public static void main(String[] args) { try { Socket socket = new Socket("localhost", 8888); OutputStream out = socket.getOutputStream(); ObjectOutputStream ob = new ObjectOutputStream(out); System.out.print("請輸入使用者名稱:"); Scanner input = new Scanner(System.in); String name = input.next(); Uesr uesr = new Uesr(name); if(uesr.getNaem().equals("使用者一")) { System.out.println("我是客戶端,伺服器響應為:歡迎你,登陸成功!"); }else { System.out.println("對不起,沒有該使用者,已通知客戶端登入失敗!"); } ob.writeObject(uesr); socket.shutdownInput(); socket.close(); ob.close(); input.close(); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }