Java网络基础(二)

InetAddressTest

import java.net.InetAddress;
import java.net.UnknownHostException;

public class InetAddressTest {
	public static void main(String args[]) {
		try {
			// getLocalHost() 返回本地主机
			InetAddress ia = InetAddress.getLocalHost();
			showInfo(ia);

			// getByName(String host) 在给定主机名的情况下确定主机的 IP 地址
			ia = InetAddress.getByName("www.baidu.com");
			showInfo(ia);
		} catch (UnknownHostException e) {
			e.printStackTrace();
		}
	}

	public static void showInfo(InetAddress ia) {
		// getHostName() 获取此 IP 地址的主机名
		String name = ia.getHostName();
		// getHostAddress() 返回 IP 地址字符串(以文本表现形式)
		String address = ia.getHostAddress();
		System.out.println(name);
		System.out.println(address);
	}
}

 

URLReader

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Scanner;

public class URLReader {
	public static void main(String args[]) {
		try {
			// 设置http访问要使用的代理服务器的地址
			// System.setProperty("http.proxyHost", "192.168.0.251");
			// 设置http访问要使用的代理服务器的端口
			// System.setProperty("http.proxyPort", "8080");

			URL url = new URL("http://www.baidu.com/");
			// openStream()
			// 打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream
			InputStream inStream = url.openStream();
			BufferedReader br = new BufferedReader(new InputStreamReader(
					inStream));
			String str = null;
			while ((str = br.readLine()) != null) {
				System.out.println(str);
			}
			br.close();

			Scanner scan = new Scanner(url.openStream());
			while (scan.hasNext()) {
				System.out.println(scan.next());
			}
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

ServerTest

import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerTest {
	public static void main(String args[]) {
		try {
			ServerSocket ss = new ServerSocket(6666);
			while (true) {
				Socket sk = ss.accept();
				OutputStream outStream = sk.getOutputStream();
				DataOutputStream dos = new DataOutputStream(outStream);
				dos.writeUTF("Ip地址" + sk.getInetAddress() + "\n端口号"
						+ sk.getPort());
				dos.close();
				sk.close();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

ClientTest

import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class ClientTest {
	public static void main(String args[]) {
		try {
			Socket sk = new Socket("127.0.0.1", 6666);
			InputStream inStream = sk.getInputStream();
			DataInputStream dis = new DataInputStream(inStream);
			System.out.println(dis.readUTF());
			dis.close();
			sk.close();
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

 

ServerTest

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerTest {
	public static void main(String args[]) {
		try {
			ServerSocket ss = new ServerSocket(6666);
			Socket sk = ss.accept();

			InputStream inStream = sk.getInputStream();
			OutputStream outStream = sk.getOutputStream();
			DataInputStream dis = new DataInputStream(inStream);
			DataOutputStream dos = new DataOutputStream(outStream);

			InputStreamReader isr = new InputStreamReader(System.in);
			BufferedReader br = new BufferedReader(isr);

			String info = null;
			while (true) {
				info = dis.readUTF();
				System.out.println("Client:" + info);
				if (info.equals("bye"))
					break;

				info = br.readLine();
				dos.writeUTF(info);
				if (info.equals("bye"))
					break;
			}

			dis.close();
			dos.close();
			br.close();
			sk.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

ClientTest

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;

public class ClientTest {
	public static void main(String args[]) {
		try {
			Socket sk = new Socket("127.0.0.1", 6666);

			InputStream inStream = sk.getInputStream();
			OutputStream outStream = sk.getOutputStream();
			DataInputStream dis = new DataInputStream(inStream);
			DataOutputStream dos = new DataOutputStream(outStream);

			InputStreamReader isr = new InputStreamReader(System.in);
			BufferedReader br = new BufferedReader(isr);

			String info = null;
			while (true) {
				info = br.readLine();
				dos.writeUTF(info);
				if (info.equals("bye"))
					break;

				info = dis.readUTF();
				System.out.println("Server:" + info);
				if (info.equals("bye"))
					break;
			}

			dis.close();
			dos.close();
			br.close();
			sk.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

 

ServerTest

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerTest {
	public static void main(String args[]) {
		try {
			ServerSocket ss = new ServerSocket(6666);
			Socket sk = ss.accept();
			OutputStream outStream = sk.getOutputStream();
			DataOutputStream dos = new DataOutputStream(outStream);
			InputStream inStream = sk.getInputStream();
			DataInputStream dis = new DataInputStream(inStream);

			new MyServerWriter(dos, InetAddress.getLocalHost().getHostName())
					.start();
			new MyServerReader(dis).start();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

class MyServerWriter extends Thread {
	private DataOutputStream dos;
	private String name;

	public MyServerWriter(DataOutputStream dos, String name) {
		this.dos = dos;
		this.name = name;
	}

	@Override
	public void run() {
		InputStreamReader isr = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(isr);
		String info = null;
		try {
			while (true) {
				info = br.readLine();
				dos.writeUTF(name + "说:" + info);
				if (info.equals("bye")) {
					System.out.println(name + "下线了");
					break;
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

class MyServerReader extends Thread {
	private DataInputStream dis;

	public MyServerReader(DataInputStream dis) {
		this.dis = dis;
	}

	@Override
	public void run() {
		String info = null;
		try {
			while (true) {
				info = dis.readUTF();
				System.out.println(info);
				if (info.equals("bye")) {
					System.out.println("对方下线,自动关闭!");
					break;
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

ClientTest

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;

public class ClientTest {
	public static void main(String args[]) {
		try {
			Socket sk = new Socket("127.0.0.1", 6666);
			OutputStream outStream = sk.getOutputStream();
			DataOutputStream dos = new DataOutputStream(outStream);
			InputStream inStream = sk.getInputStream();
			DataInputStream dis = new DataInputStream(inStream);

			new MyClientWriter(dos, InetAddress.getLocalHost().getHostName())
					.start();
			new MyClientReader(dis).start();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

class MyClientWriter extends Thread {
	private DataOutputStream dos;
	private String name;

	public MyClientWriter(DataOutputStream dos, String name) {
		this.dos = dos;
		this.name = name;
	}

	@Override
	public void run() {
		InputStreamReader isr = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(isr);
		String info = null;
		try {
			while (true) {
				info = br.readLine();
				dos.writeUTF(name + "说:" + info);
				if (info.equals("bye")) {
					System.out.println(name + "下线了");
					break;
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

class MyClientReader extends Thread {
	private DataInputStream dis;

	public MyClientReader(DataInputStream dis) {
		this.dis = dis;
	}

	@Override
	public void run() {
		String info = null;
		try {
			while (true) {
				info = dis.readUTF();
				System.out.println(info);
				if (info.equals("bye")) {
					System.out.println("对方下线,自动关闭!");
					break;
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

 

 

你可能感兴趣的:(java,thread,.net,socket,dos)