1.代码
package mianshi_test_01;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server_port {// 服务器端 服务气短先开,客户端请求才能发送来
public static void main(String[] args) {
Server_port sp = new Server_port();
}
public Server_port() {
try {
ServerSocket ss = new ServerSocket(8888);// 建立服务器端
Socket sc = ss.accept();// 监听客户端
BufferedReader bd = new BufferedReader(new InputStreamReader(sc.getInputStream()));// 得到输入流
PrintWriter pw = new PrintWriter(sc.getOutputStream(), true);// 得到输出流
String str = bd.readLine();// 先读后写
System.out.println("服务器端将读来的_写到控制台" + str);
pw.println("发送到客户端,这是服务器端读来的数据"+str);// 转发到客户端
bd.close();
pw.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("server_ok");
}
}
}
package mianshi_test_01;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client_port {
public static void main(String[] args) {
Client_port cp = new Client_port();
}
public Client_port() {
try {
Socket sk = new Socket("localhost", 8888);
BufferedReader bd = new BufferedReader(new InputStreamReader(sk.getInputStream()));// 得到输入流
PrintWriter pw = new PrintWriter(sk.getOutputStream(), true);// 得到输出流
// 先写后读
pw.println("客户端发来:你好Server");
String data = null;
while (true) {
data = bd.readLine();
if (bd != null)
break;
}
System.out.println("客户端_从服务器端读来的:" + data);
bd.close();
pw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
二、报错
这是端口被占用,解决:https://blog.csdn.net/weixin_42565135/article/details/84137697
三、结果