刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
面试题
手写 ServerSocket 服务端和客户端通信代码;
使用微信搜索喵呜刷题,轻松应对面试!
答案:
解答思路:
要手写ServerSocket服务端和客户端通信代码,首先需理解ServerSocket和Socket的工作原理及其在TCP/IP协议栈中的角色。ServerSocket用于创建服务器并监听来自客户端的连接请求,而Socket用于客户端和服务器之间的通信。下面是一个简单的Java实现示例。
最优回答:
一、服务端(ServerSocket)代码:
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
// 监听指定端口
ServerSocket serverSocket = new ServerSocket(8000);
System.out.println("Server is listening on port 8000...");
while (true) {
// 接受客户端连接请求
Socket socket = serverSocket.accept();
System.out.println("Client connected from " + socket.getInetAddress().getHostName());
// 创建输入流读取客户端数据
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String info = null;
while ((info = br.readLine()) != null) {
System.out.println("Message from client: " + info);
}
br.close(); // 关闭输入流和连接
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
二、客户端(Socket)代码:
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
// 连接服务器指定端口号,这里假设服务器IP为localhost(即本机)端口为上面服务端监听的端口号8000。如果服务器在其他机器上,则换成相应IP地址。 System.out.println("Connecting to server...");"); Socket socket = new Socket("localhost", 8000); System.out.println("Connected to server!"); // 创建输出流发送数据到服务器 PrintWriter out = new PrintWriter(socket.getOutputStream(), true); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String userInput; while ((userInput = in.readLine()) != null) { out.println(userInput); } out.close(); // 关闭输出流和连接 socket.close(); } catch (IOException e) { e.printStackTrace(); } } }```
解析:
创作类型:
原创
本文链接:手写 ServerSocket 服务端和客户端通信代码;
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!



