Java 使用 Socket 实现客户端和服务器的信息交互

服务器

public class Server{
	
	private ServerSocket serverSocket;
	private Socket socket;
	private BufferedReader in;
	private PrintWriter out;
	
	public Server() {
		try {
			//	定义连接端口
			serverSocket = new ServerSocket(10000);
			while(true) {
				//	等待客户端连接
				socket = serverSocket.accept();
				//	获取本机地址
				String RemoteIP = socket.getInetAddress().getHostAddress();
				//	获取本机端口号
				String RemotePort = ":" + socket.getLocalPort();
				System.out.println("服务器:有一个用户进来了! IP 地址为:" + RemoteIP + RemotePort);
				in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
				//	获取用户输入的内容
				String line = in.readLine();
				System.out.println("用户:" + line);
				out = new PrintWriter(socket.getOutputStream(),true);
				out.println("服务器:已经收到消息");
				//	关闭资源
				out.close();
				in.close();
				socket.close();
			}
		}catch(IOException e) {
			out.println("wrong");
		}
	}
	
	public static void main(String[] args) {
		
		new Server();
		
	}
	
}

客户端

public class Client{
	
	private Socket socket;
	private BufferedReader in;
	private PrintWriter out;
	
	public Client() {
		
		try {
			System.out.println("尝试连接  127.0.0.1:10000");
			// 设置本机地址和端口号
			socket = new Socket("127.0.0.1",10000);
			System.out.println("连接成功!");
			System.out.print("请输入你想说的话:");
			BufferedReader line = new BufferedReader(new InputStreamReader(System.in));
			out = new PrintWriter(socket.getOutputStream(),true);
			// 获取服务器传过来的消息
			out.println(line.readLine());
			in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
			System.out.println(in.readLine());
			//	关闭资源
			out.close();
			in.close();
			socket.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			out.println("Wrong");
		}
	}
	
	public static void main(String[] args) {
		
		new Client();
		
	}
	
}

服务器
服务器
客户端
客户端

发布了46 篇原创文章 · 获赞 61 · 访问量 3254

猜你喜欢

转载自blog.csdn.net/hyx1249273846/article/details/103505288