2.编写一个程序,查找指定域名为www.taobao.com的所有可能的IP地址。
import java.net.InetAddress;
public class Test {
public static void main(String[] args) {
try {
System.out.println("-----淘宝的主服务器地址-----");
InetAddress is = InetAddress.getByName("www.taobao.com");
System.out.println(is);
System.out.println("-----淘宝的所有服务器地址-----");
InetAddress [] in = InetAddress.getAllByName("www.taobao.com");
for (int i = 0; i < in.length; i++) {
System.out.println(in[i]);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.err.println("没有这个网址!");
}
}
}
3.模拟用户登录,预设用户数据,提示登录成功或不成功的原因。
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 服务器类
* @author suixin
*
*/
public class MyServerSocket {
private String name = "suixin"; //在服务器预设用户名;
private String password = "suixin1213"; //在服务器预设密码
public String getName() {
return name;
}
public String getPassword() {
return password;
}
public static void main(String[] args) {
try {
//1.创建服务器对象
ServerSocket serverSocket = new ServerSocket(8888);
while (true) {
//2.启动监听客户端accept()方法,用Socket接收
Socket socket = serverSocket.accept();
new LoginThread(socket).start();; //调用处理客户端信息线程
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.io.BufferedWriter;
import java.io.ObjectInputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
/**
* 处理登录信息的线程类
* @author suixin
*
*/
public class LoginThread extends Thread {
private Socket socket; //套接字对象
public LoginThread(Socket socket) {
super();
this.socket = socket;
}
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
MyServerSocket myServerSocket = new MyServerSocket(); //创建服务器对象获得预设的用户名和密码
try {
//1.打开输入流读取客户端发送的请求
ObjectInputStream inputStream = new ObjectInputStream(socket.getInputStream()); //反序列化获取对象信息
Guest user = (Guest)inputStream.readObject();
System.out.println("我是服务器,客户的登录信息为:"+user.toString());
socket.shutdownInput();
//2.打开输出流发送给客户端反馈信息
OutputStream outputStream = socket.getOutputStream();
BufferedWriter biw = new BufferedWriter(new OutputStreamWriter(outputStream));
//判断客户端发送的用户名和密码是否正确
if ((user.getName().equals(myServerSocket.getName()))
&& (user.getPassword().equals(myServerSocket.getPassword()))) { //正确时
System.out.println("存在该用户,登录成功!");
biw.write("欢迎你,登录成功!");
}else { //不正确时
System.out.println("对不起,没有该用户,已通知客户端登录失败!");
biw.write("对不起,没有该用户,登录失败!");
}
//3.关闭所有流
biw.close();
outputStream.close();
inputStream.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.Scanner;
/**
* 客户端类
* @author suixin
*
*/
public class MySocket {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
try {
//1.创建客户端对象
Socket socket = new Socket("localhost", 8888);
//2.打开输出流发送登录信息给服务器
ObjectOutputStream objectOutputStream = new ObjectOutputStream(socket.getOutputStream());
System.out.print("请输入用户名:");
String userName = scanner.nextLine();
System.out.print("请输入密码:");
String password = scanner.nextLine();
Guest guest = new Guest(userName, password);
objectOutputStream.writeObject(guest); //把User对象序列化发送服务器
socket.shutdownOutput(); //禁用输出流
//3.打开输入流读取服务器发送的反馈
InputStream inputStream = socket.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
System.out.println("我是客户端,服务器的响应为:"+bufferedReader.readLine());
//4.关闭所有流
bufferedReader.close();
inputStream.close();
objectOutputStream.close();
socket.close();
scanner.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
import java.io.Serializable;
/**
* 用户类
* @author suixin
*
*/
public class Guest implements Serializable{
private String name; //用户名
private String password; //密码
public Guest(String name, String password) {
super();
this.name = name;
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "用户名:" + name + ", 密码:" + password;
}
}
这篇博客探讨了使用Java进行域名解析,找到www.taobao.com的所有可能IP地址,并介绍了如何模拟用户登录过程,包括设置用户数据以及显示登录结果的详细信息。
3276

被折叠的 条评论
为什么被折叠?



