TCP协议简单总结

devtools/2024/9/24 0:17:58/

TCP:传输控制协议

  • 特点:面向连接、可靠通信

  • TCP的最终目的:要保证在不可靠的信道上实现可靠的传输

  • TCP主要有三个步骤实现可靠传输:三次握手建立连接,传输数据进行确认,四次挥手断开连接

    • 三次握手建立可靠连接。

    • 建立连接后会建立可靠的通信管道

    • 四次握手断开连接

TCP通信之客户端开发

客户端发送信息:

java">import java.io.*;
import java.net.*;public class TCPClient {public static void main(String[] args) {final String serverAddress = "127.0.0.1"; // 服务器地址final int serverPort = 8080; // 服务器端口try {// 连接到服务器Socket socket = new Socket(serverAddress, serverPort);System.out.println("Connected to server.");// 发送消息到服务器sendMessage(socket, "Hello, Server!");// 接收服务器的响应String response = receiveMessage(socket);System.out.println("Response from server: " + response);// 关闭连接socket.close();} catch (IOException e) {e.printStackTrace();}}private static void sendMessage(Socket socket, String message) throws IOException {PrintWriter out = new PrintWriter(socket.getOutputStream(), true);out.println(message);}private static String receiveMessage(Socket socket) throws IOException {BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));return in.readLine();}
}

TCP通信之服务端开发

 

 服务端接收信息

java">import java.io.*;
import java.net.*;public class TCPExample {public static void main(String[] args) {final int PORT = 8080;try {// 启动服务器ServerSocket serverSocket = new ServerSocket(PORT);System.out.println("Server started. Waiting for connections...");// 等待客户端连接Socket clientSocket = serverSocket.accept();System.out.println("Client connected: " + clientSocket);// 处理客户端请求handleClient(clientSocket);// 关闭服务器serverSocket.close();} catch (IOException e) {e.printStackTrace();}}public static void handleClient(Socket clientSocket) {try {// 接收客户端消息BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));String message = in.readLine();System.out.println("Received message from client: " + message);// 向客户端发送响应PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);out.println("Hello, Client!");// 关闭连接clientSocket.close();} catch (IOException e) {e.printStackTrace();}}
}


http://www.ppmy.cn/devtools/5165.html

相关文章

JD抓包 | 安卓app抓包

去年11月份左右搞过一次安卓抓包, 搞了很久试了很多方法, 才弄好. 时隔半年, 安卓抓包依然是令我头疼的问题 这次简单记录一下过程(细节太多我也说不清) JD的有效信息接口通常是以下这样的, 其他的接口并没有返回太多"有用"的信息 https://api.m.jd.com/client.act…

NX二次开发——矩形排料5(基于最低水平线+遗传算法排料策略实现)

目录 一、概述 二、知识回顾 2.1适应度函数的确定 2.2基因编码 2.3遗传算法复制(选择) 2.4遗传算法交叉操作 通过交叉操作可以增加种群个体的多样性,既可以产生更多的优秀解。下面通过顺序编码方法进行改进(网上有很…

【编译原理】03语法分析

1,语法分析的若干问题 1.1 语法分析器的作用 编译器前端的重要组成部分: (1) 根据词法分析器提供的记号流,为语法正确的输入构造分析树(或语法树)。 (2) 检查输入中的语法(可能包括词法)错误,并调用出错处理器进…

Vue.js npm错误:transpileDependencies.map不是一个函数

这个错误通常是由于npm版本不兼容导致的。在旧版本的npm中,transpileDependencies是一个字符串数组,我们可以直接配置需要编译的依赖库。而在较新版本的npm中,transpileDependencies被改成了一个对象,并且需要使用map()方法来处理…

数据库-Redis(19)

​​​​​​​目录 91.Redis 6.0之前为什么一直不用多线程? 92.Redis 6.0为什么要引入多线程呢?

使用共振峰提取元音音素/从声音生成口型动画

视频效果 我前段时间研究了下从声音提取共振峰的方法。今天测试了下实际效果。 我使用一段33秒的女声视频,提取元音后使用静态视位图序列生成了一个视频,效果如下: b站视频: https://www.bilibili.com/video/BV1JD421H7m9/?vd_…

【结构型模式】装饰器模式

​一、装饰器模式概述 装饰器模式(装饰者模式)定义:装饰器模式动态地将责任附加到对象上。若要拓展功能,装饰者提供了比继承更有弹性地替代方案。(对象结构型模型)通俗点来说:动态的给一个对象增…

MongoDB 初识

介绍 MongoDB是一种开源的文档型数据库管理系统,它使用类似于JSON的BSON格式(Binary JSON)来存储数据。与传统关系型数据库不同,MongoDB不使用表和行的结构,而是采用集合(Collection)(Mysql表)和…