TCP客户端
package com.msb.test09;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class TCPClient {
public static void main(String[] args) throws IOException {
final String serverIP = "127.0.0.1"; // 服务端IP地址
final int serverPort = 8888; // 服务端端口号
// 创建Socket对象,连接到服务器
Socket socket = new Socket(serverIP, serverPort);
// 创建输入流和输出流
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 发送消息给服务端
out.println("Hello, Server!");
// 接收服务端的响应
String response = in.readLine();
System.out.println("Server response: " + response);
while (true) {
System.out.print("-> ");
Scanner scanner = new Scanner(System.in);
String request = scanner.nextLine();
// 创建输入流和输出流
PrintWriter out1 = new PrintWriter(socket.getOutputStream(), true);
out.println(request);
if (request.equals("exit")) {
System.out.println("client closed");
socket.close();
break;
}
}
}
}
TCP服务端
package com.msb.test09;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer {
public static void main(String[] args) throws IOException {
final int serverPort = 8888; // 监听端口号
// 创建ServerSocket对象,监听指定端口
ServerSocket serverSocket = new ServerSocket(serverPort);
System.out.println("服务器已启动,等待客户端连接...");
// 等待客户端连接
Socket clientSocket = serverSocket.accept();
System.out.println("客户端已连接:" + clientSocket.getInetAddress() + ":" + clientSocket.getPort());
// 创建输入流和输出流
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
// 接收客户端消息
String message = in.readLine();
System.out.println("客户端消息:" + message);
// 向客户端发送响应
out.println("Hello, Client!");
while (true) {
BufferedReader in1 = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
System.out.println("客户端消息:" + in1.readLine());
if(in1.readLine().equals("exit")){
System.out.println("server closed");
serverSocket.close();
break;
}
}
}
}