本章概述:本章主要讲了网络的基本概念,网络分层,数据的封装与拆分网络爬虫原理和比较重要的TCP编程和UDP编程
本章概述:
一、InetAddressDemo
public class InetAddressDemo {
public static void main(String[] args) throws UnknownHostException {
InetAddress inetAddress = InetAddress.getLocalHost();
System.out.println(inetAddress);
InetAddress address = InetAddress.getByName("www.baidu.com");
System.out.println(address);
System.out.println(address.getHostName());
System.out.println(address.getHostAddress());
}
}
二、Server
1、Server
public class Server {
public static void main(String[] args) throws IOException {
//创建ServerSocket对象
ServerSocket serverSocket = new ServerSocket(10086);
System.out.println("**********************服务器已开启... ...**********************");
//开启一个监听
Socket server = serverSocket.accept();
//从socket对象中获取输入流
InputStream inputStream = server.getInputStream();
//使用DataInputStream包装流
DataInputStream dataInputStream = new DataInputStream(inputStream);
//读取从客户端发送过来的数据
String s = dataInputStream.readUTF();
System.out.println("客户端说:" + s);
//关闭资源
dataInputStream.close();
inputStream.close();
server.close();
serverSocket.close();
}
}
2、Sever2
public class Server2 {
public static void main(String[] args) throws IOException {
//创建ServerSocket对象
ServerSocket serverSocket = new ServerSocket(10000);
System.out.println("**********************服务器已开启... ...**********************");
//开启监听
Socket server = serverSocket.accept();
/**************************接收从客户端发送的消息*******************************/
InputStream inputStream = server.getInputStream();
byte[] buffer = new byte[1024];
int length = inputStream.read(buffer);
System.out.println("客户端说:" +new String(buffer,0,length));
/**************************服务器向客户端响应一条消息*******************************/
OutputStream outputStream = server.getOutputStream();
//向客户端传输数据
outputStream.write("我已收到你的消息,我是服务器!".getBytes());
//关闭资源
outputStream.close();
inputStream.close();
server.close();
serverSocket.close();
}
}
三、Client
1、Client
* 模拟客户端向服务器发送一条消息
*
* 客户端程序
*/
public class Client {
public static void main(String[] args) throws IOException {
//创建Socket套接字对象
Socket client = new Socket("localhost",10086);
//从socket中获取输出流
OutputStream outputStream = client.getOutputStream();
//使用DataOutputStream包装流
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
//发送一条信息给服务器
dataOutputStream.writeUTF("你好,服务器,我是客户端!");
//关闭资源
dataOutputStream.close();
outputStream.close();
client.close();
}
}
2、Client2
public class Client2 {
public static void main(String[] args) throws IOException {
//创建Socket对象
Socket client = new Socket("127.0.0.1",10000);
//从socket中获取输出流
/**************************向服务器发送一条消息*******************************/
OutputStream outputStream = client.getOutputStream();
outputStream.write("nihao,服务器,我是客户端!".getBytes());
/**************************接收服务器响应的消息*******************************/
InputStream inputStream = client.getInputStream();
//读取服务器响应回来的数据
byte[] buffer = new byte[1024];
int length = inputStream.read(buffer);
System.out.println("服务器说:" + new String(buffer,0,length));
//关闭资源
inputStream.close();
outputStream.close();
client.close();
}
}