注:先启动服务器端,再启动客户端
package tcp;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
/**
* TCP
*/
public class TCPServer {
//端口号
private static final int port = 9002;
public static void main(String[] args) throws IOException {
//1.创建TCP服务器端
ServerSocket serverSocket = new ServerSocket(port);
System.out.println("服务器启动成功!");
//2.登录客户端的连接
Socket client = serverSocket.accept();
//try-resource
try (BufferedWriter bufferedWriter = new BufferedWriter(
new OutputStreamWriter(client.getOutputStream()));
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(client.getInputStream()));
) {
while (true) {
//3.接收客户端消息
String msg = bufferedReader.readLine();
if (msg != null && !msg.equals("")) {
System.out.println("收到客户端信息:" + msg);
//4.返回给客户端响应信息
String serMsg = "我收到了";
bufferedWriter.write(serMsg + "\n");
//缓冲区刷新
bufferedWriter.flush();
}
}
}
}
}
package tcp;
import java.io.*;
import java.net.Socket;
import java.util.Scanner;
/**
* TCP客户端
*/
public class TCPClient {
//服务器端IP
private static final String ip = "127.0.0.1";
//服务器端口号
private static final int port = 9002;
public static void main(String[] args) throws IOException {
//1.创建tcp客户端,并且连接到服务器端
Socket socket = new Socket(ip,port);
try(BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream()));
Scanner scanner = new Scanner(System.in);
) {
while (true) {
System.out.println("->");
String msg = scanner.nextLine();
//2.发送信息给服务端
writer.write(msg + "\n");
writer.flush();
//3.接收服务器响应的内容
String serMsg = reader.readLine();
System.out.println("服务器反馈:" + serMsg);
}
}
}
}