java,import java.io.*;,import java.net.*;,,public class Client {, public static void main(String[] args) {, try {, Socket socket = new Socket("localhost", 8080);, BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));, PrintWriter out = new PrintWriter(socket.getOutputStream(), true);, out.println("Hello, Server!");, System.out.println("Server says: " + in.readLine());, socket.close();, } catch (IOException e) {, e.printStackTrace();, }, },},“,,这个示例中,客户端连接到本地主机(localhost)的8080端口,并向服务器发送一条消息。它从服务器接收一条消息并将其打印到控制台。关闭套接字连接。1、我们需要创建一个服务器端,服务器端将监听一个特定的端口,等待客户端的连接请求,当客户端连接时,服务器将接收客户端发送的消息,并将其原样返回给客户端。

import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
int port = 8080; // 服务器监听的端口号
try {
ServerSocket serverSocket = new ServerSocket(port);
System.out.println("服务器已启动,等待客户端连接...");
while (true) {
Socket clientSocket = serverSocket.accept(); // 等待客户端连接
System.out.println("客户端已连接: " + clientSocket.getInetAddress());
// 为每个客户端创建一个新的线程处理通信
new Thread(new ClientHandler(clientSocket)).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class ClientHandler implements Runnable {
private Socket clientSocket;
public ClientHandler(Socket socket) {
this.clientSocket = socket;
}
@Override
public void run() {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("收到消息: " + inputLine);
out.println(inputLine); // 将收到的消息原样返回给客户端
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
} 2、我们需要创建一个客户端,客户端将连接到服务器,并发送一条消息,然后接收服务器返回的消息。
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
String serverAddress = "localhost"; // 服务器地址
int serverPort = 8080; // 服务器监听的端口号
try {
Socket socket = new Socket(serverAddress, serverPort); // 连接到服务器
System.out.println("已连接到服务器");
// 发送消息到服务器
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("你好,服务器!");
// 接收服务器返回的消息
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String response = in.readLine();
System.out.println("收到服务器回复: " + response);
// 关闭资源
in.close();
out.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} 3、分别运行Server和Client类,首先启动Server,然后启动Client,你将在Server的控制台看到客户端连接的信息以及收到的消息,同时在Client的控制台看到收到的服务器回复的消息。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复