
客户端代码:
package org.example.socket;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
/**
* 客户端
*/
public class Client {
public static void main(String[] args) {
String host = "localhost";
int port = 12345;
System.out.println("客户端准备就绪,开始连接服务器");
try(Socket socket = new Socket(host, port)) {
System.out.println("客户端成功连接服务器: host-" + socket.getInetAddress() + ", port-" + socket.getPort());
BufferedReader inputBuffer = new BufferedReader(new InputStreamReader(System.in));
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
String msg;
while(true) {
System.out.println("请输入消息:");
msg = inputBuffer.readLine();
if(!msg.equalsIgnoreCase("bye")) {
System.out.println("客户端开始传输数据:......");
out.println(msg);
String msgFromServer = in.readLine();
System.out.println("客户端收到服务器消息 : " + msgFromServer);
}else {
System.out.println("客户端退出");
break;
}
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
服务端代码:
package org.example.socket;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 服务器端
*/
public class Server {
public static void main(String[] args) throws IOException {
int port = 12345;// 端口号
try(ServerSocket serverSocket = new ServerSocket(port)) {
System.out.println("服务器启动,等待客户端连接:........");
Socket clientSocket = serverSocket.accept();//等待客户端连接 如果客户端迟迟不发送数据,就会一直阻塞等待
// 成功接收到连接
System.out.println("成功接收到客户端连接,地址为 : " + clientSocket.getInetAddress());
// 获取输入流,设置输出流
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
String msg;
while((msg = in.readLine()) != null) {
System.out.println("服务端接收到数据:" + msg);
// 传递数据给客户端
out.println("服务器已经接收到你传输的数据, 数据内容为: " + msg);
// 检测到 bye 就断开链接
if(msg.equalsIgnoreCase("bye")) {
System.out.println("客户端断开连接");
break;
}
}
clientSocket.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}
6873

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



