TCP和UDP的java模拟代码,模拟三次握手
`import java.net.;
import java.io.;
public class Main {
public static void main(String[] args) {
try {
// TCP连接模拟
ServerSocket serverSocket = new ServerSocket(8080);
Socket clientSocket = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
// UDP 连接模拟
DatagramSocket datagramSocket = new DatagramSocket(8081);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while (true) {
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
datagramSocket.receive(receivePacket);
String message = new String(receivePacket.getData());
System.out.println("Received message: " + message);
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
String response = "Server received message: " + message;
sendData = response.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
datagramSocket.send(sendPacket);
// 三次握手
String inputLine;
inputLine = in.readLine();
System.out.println("Received SYN: " + inputLine);
out.println("SYN-ACK");
inputLine = in.readLine();
System.out.println("Received ACK: " + inputLine);
// 数据效验
while ((inputLine = in.readLine()) != null) {
System.out.println("Received message: " + inputLine);
out.println("Server received message: " + inputLine);
}
clientSocket.close();
serverSocket.close();
} catch (IOException e) {
System.out.println("Exception caught when trying to listen on port or listening for a connection");
System.out.println(e.getMessage());
}
}
}`
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~