首页 > 其他分享 >TCP概述

TCP概述

时间:2024-06-05 19:23:04浏览次数:16  
标签:socket int TCP 概述 address 序列号 接收

概述

TPC:传输控制协议,TCP协议是面向连接的、可以实现端对端通信的可靠的协议。

TCP协议传输数据时会为每个字节分配一个序列号,通过这个序列号就可以判断数据是否重复到达以及数据是否丢失,还可以通过序列号对数据进行排序。

报首格式

image

TCP建立连接的三次握手过程

image
image

TCP三次挥手过程

image
image

C/S通信代码实现过程

客户端

  1. 创建套接字
    int socket(int domain, int type, int protocol);
  2. 连接服务器
    int connect(int socket, const struct sockaddr *address,socklen_t address_len);
  3. 发送/接收信息
    read/recv/write/send

服务端

  1. 创建套接字
    int socket(int domain, int type, int protocol);
  2. 绑定端口、ip等信息
    int bind(int socket, const struct sockaddr *address,socklen_t address_len);
  3. 监听
    int listen(int socket, int backlog);
  4. 接收连接
    int accept(int socket, struct sockaddr *restrict address,socklen_t *restrict address_len);
    (接收连接后使用新的套接字进行接收和发送)
  5. 接收/发送消息
    read/recv/write/send

标签:socket,int,TCP,概述,address,序列号,接收
From: https://www.cnblogs.com/lzj-ZJ/p/18233558

相关文章

  • TCP协议网络通信
    TCP协议网络通信目录TCP协议网络通信头文件/宏定义客户端服务器验证结果客户端服务器头文件/宏定义#include<stdio.h>#include<stdlib.h>#include<string.h>#include<arpa/inet.h>#include<netinet/in.h>#include<sys/types.h>#include<sys/socket.h>#includ......
  • TCP和UDP
    TCP和UDPTCP的可靠性特性序列号(Sequencing):TCP为每个传输的数据段分配一个唯一的序列号,接收端可以根据这些序列号重新组装数据。确认与重传(AcknowledgmentandRetransmission):TCP使用确认机制来确认数据段是否成功到达。如果接收端没有收到某个数据段,发送端会重传它。流量控......
  • TCP_FLAGS_PROCESSING_09: [close-wait| closing | last-ack] FIN -> ignore
    测试目的:验证TCP在CLOSE-WAIT、CLOSING或LAST-ACK状态下,接收到FIN段时是否能够保持当前状态不变。描述:TCP在CLOSE-WAIT、CLOSING或LAST-ACK状态下,当接收到一个FIN段时,不应改变其状态。这是确保TCP连接能够按照正常的关闭序列进行,避免状态的意外变化。测试拓扑:具体步骤......
  • 接上篇,客户端实现,图形界面编程,利用socket和UCP/TCP编写,客户端和服务器端程序可以进行
     1.项目结构 1.1基本架构本项目采用基于Java的`Swing`库进行图形界面开发,并使用`Socket`进行网络通信。项目包名为`org.example.tcp`。 1.2模块划分项目主要分为以下几个模块:图形用户界面(GUI)模块网络通信模块线程处理模块 2.GUI设计 2.1主窗口设计 2.1.1......
  • 【维度建模】【第二章】Kimball维度建模技术概述
    2.1基本概念2.1.2维度建模研讨维度模型应该由业务、模型设计者通过充分的讨论得到。2.1.3四步骤维度设计过程维度设计期间主要设计一下四个主要的决策:选择业务过程声明粒度确认维度确认事实2.1.4业务过程表示一次业务的行为。例如获得订单、学生课程注册,2.1.5粒度粒......
  • visual studio 插件开发 - 概述
    VisualStudio插件开发1.插件的概述1.1VisualStudio扩展执行哪些类型的操作?对VisualStudio中不包含的语言的支持,并提供语法着色、IntelliSense和编译器和调试支持。使用更多模板、代码重构、新对话框或工具窗口扩展核心IDE体验的生产力工具。特定于域的设计器,适......
  • DApp应用开发概述
    随着区块链技术的迅猛发展,去中心化应用(DecentralizedApplications,简称DApps)逐渐成为技术前沿的热点。DApps与传统的中心化应用有着本质的区别,它们运行在去中心化的区块链网络上,无需依赖中心化服务器,具有高透明度、高安全性和不可篡改性等特点。基于基纳链开发的dapp实例区块......
  • 服务器数据恢复概述
    服务器数据恢复是一个复杂的过程,涉及到多种技术和方法。以下是一些关键步骤和考虑因素:确定数据丢失的原因在进行数据恢复之前,首先需要确定数据丢失的原因。这可能包括硬件故障、软件错误、病毒攻击、人为操作失误等。了解数据丢失的原因有助于选择合适的恢复方法和工具。选择......
  • 面向对象设计方法Review-01.课程概述
    课程简介能带来什么:1.掌握OOP基本原理;2.了解OOP新兴技术;3.满足OOP技术需求;课程目标:1.OOPL写代码→OOP→OOSC;2.朴素OOP→系统化OOP;3.传统OO技术→现代化OO技术;课程内容:OO的起源及动机;OO的设计:1.契约式设计;2.设计原则;3.设计模式;4.应用框架;背景概述软......
  • tcp server 为什么需要 accept
     在TCP协议中,服务器端建立连接的过程分为几个步骤,其中accept操作起到了关键作用,具体原因包括: 1.连接管理:当一个TCP客户端发起连接请求时,它会向服务器发送一个SYN(同步)包,开始三次握手过程。服务器通过监听socket接收到这个SYN包后,会回复一个SYN-ACK(同步-确认)包。......