
package unit5;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Java42 {
public static void main(String[] args) {
// 网络
// C/S架构:Client/Server:客户端/服务器端
// navicat客户端 -> mysql服务器
// ip:192.168.3.50
// port端口:3306
// B/S架构:Brower/Server:浏览器/服务器端
// 浏览器客户单 -> tomcat服务器
// ip:192.168.3.50
// port端口:8080
}
}
// 服务器
class Server {
public static void main(String[] args) throws IOException {
// java.net网络通信包
// ServerSocket -> Socket -> InputStream -> String
// 服务器端套接字
ServerSocket serverSocket = new ServerSocket(8082);
// 套接字
Socket socket = null;
// 字节输入流(I/O)
InputStream in = null;
while (true) {
// 接受客户端请求
socket = serverSocket.accept();
in = socket.getInputStream();
byte[] b = new byte[1024];
int i = in.read(b);// 返回实际长度
String str = new String(b, 0, i);
System.out.println(str);
// 给客户端发信息响应
OutputStream outputStream = socket.getOutputStream();
outputStream.write("收到客户请求".getBytes());
}
// 关闭
// socket.close();
// serverSocket.close();
}
}
// 客户端
class Client {
public static void main(String[] args) throws IOException {
// 套接字对象
// Socket -> OutputStream -> String
Socket socket = new Socket("192.168.3.49", 8082);
OutputStream outputStream = socket.getOutputStream();
outputStream.write("你好".getBytes());
// 客户端读取服务器数据
InputStream in = socket.getInputStream();
byte[] b = new byte[1024];
int i = in.read(b);// 返回实际长度
String str2 = new String(b, 0, i);
System.out.println(str2);
// 关闭
outputStream.close();
socket.close();
}
}