当前位置: 首页 > wzjs >正文

防腐木用什么名字做网站吉林省建设工程管理系统

防腐木用什么名字做网站,吉林省建设工程管理系统,163企业邮箱官网,wordpress视频主题模板下载目录 一. TCP协议详细讲解及C代码实例1、TCP协议概述2、TCP通信流程1) 三次握手2) 数据传输3) 四次挥手 3、关键点解析1) 套接字创建2) 三次握手实现3) 数据传输4) 四次挥手实现 4、TCP与UDP对比 一. TCP协议详细讲解及…

目录

  • 一. TCP协议详细讲解及C++代码实例
    • 1、TCP协议概述
    • 2、TCP通信流程
      • 1) 三次握手
      • 2) 数据传输
      • 3) 四次挥手
    • 3、关键点解析
      • 1) 套接字创建
      • 2) 三次握手实现
      • 3) 数据传输
      • 4) 四次挥手实现
    • 4、TCP与UDP对比

一. TCP协议详细讲解及C++代码实例

1、TCP协议概述

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。其核心特性包括:

  • 面向连接:通信前需建立连接(三次握手),结束后需释放连接(四次挥手)。
  • 可靠性:通过序列号、确认应答(ACK)、超时重传、校验和等机制确保数据无丢失、无重复、按序到达。
  • 流量控制:使用滑动窗口机制,动态调整发送速率,避免接收方缓冲区溢出。
  • 拥塞控制:通过慢启动、拥塞避免、快速重传、快速恢复等算法避免网络拥塞。

2、TCP通信流程

1) 三次握手

客户端发送SYN包,服务器返回SYN+ACK包,客户端再发送ACK包,建立连接。

2) 数据传输

数据被分割为多个TCP段,每段包含序列号和确认号,确保按序传输。

3) 四次挥手

通信结束时,主动关闭方发送FIN包,被动关闭方返回ACK包,再发送FIN包,最后主动关闭方返回ACK包,释放连接。

C++代码实例

1. TCP客户端代码(C++)
cpp
#include <iostream>
#include <cstring>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>int main() {// 创建TCP套接字int client_socket = socket(AF_INET, SOCK_STREAM, 0);if (client_socket == -1) {std::cerr << "Failed to create socket." << std::endl;return -1;}// 设置服务器地址和端口sockaddr_in server_address{};server_address.sin_family = AF_INET;server_address.sin_port = htons(8888);server_address.sin_addr.s_addr = inet_addr("127.0.0.1");// 连接服务器if (connect(client_socket, (struct sockaddr*)&server_address, sizeof(server_address)) == -1) {std::cerr << "Failed to connect to server." << std::endl;close(client_socket);return -1;}try {// 发送数据const char* message = "Hello, TCP Server!";send(client_socket, message, strlen(message), 0);// 接收响应char buffer[1024] = {0};int bytes_received = recv(client_socket, buffer, sizeof(buffer), 0);if (bytes_received > 0) {std::cout << "Received from server: " << buffer << std::endl;}} catch (...) {std::cerr << "An error occurred during communication." << std::endl;}// 关闭连接close(client_socket);return 0;
}
2. TCP服务器端代码(C++)
cpp
#include <iostream>
#include <cstring>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>int main() {// 创建TCP套接字int server_socket = socket(AF_INET, SOCK_STREAM, 0);if (server_socket == -1) {std::cerr << "Failed to create socket." << std::endl;return -1;}// 绑定地址和端口sockaddr_in server_address{};server_address.sin_family = AF_INET;server_address.sin_port = htons(8888);server_address.sin_addr.s_addr = INADDR_ANY;if (bind(server_socket, (struct sockaddr*)&server_address, sizeof(server_address)) == -1) {std::cerr << "Failed to bind socket." << std::endl;close(server_socket);return -1;}// 监听连接if (listen(server_socket, 1) == -1) {std::cerr << "Failed to listen on socket." << std::endl;close(server_socket);return -1;}std::cout << "Server is listening on port 8888..." << std::endl;try {while (true) {// 接受客户端连接sockaddr_in client_address{};socklen_t client_address_size = sizeof(client_address);int client_socket = accept(server_socket, (struct sockaddr*)&client_address, &client_address_size);if (client_socket == -1) {std::cerr << "Failed to accept client connection." << std::endl;continue;}std::cout << "Connection from " << inet_ntoa(client_address.sin_addr) << std::endl;try {// 接收数据char buffer[1024] = {0};int bytes_received = recv(client_socket, buffer, sizeof(buffer), 0);if (bytes_received > 0) {std::cout << "Received from client: " << buffer << std::endl;// 发送响应const char* response = "Hello, TCP Client!";send(client_socket, response, strlen(response), 0);}} catch (...) {std::cerr << "An error occurred during communication." << std::endl;}// 关闭客户端连接close(client_socket);}} catch (...) {std::cerr << "An error occurred in the server loop." << std::endl;}// 关闭服务器套接字close(server_socket);return 0;
}

3、关键点解析

1) 套接字创建

socket(AF_INET, SOCK_STREAM, 0):创建IPv4的TCP套接字。

2) 三次握手实现

客户端调用connect()时,底层自动完成三次握手。

3) 数据传输

send():发送数据。
recv():接收数据,需指定缓冲区大小。

4) 四次挥手实现

关闭连接时,close()方法自动完成四次挥手。

4、TCP与UDP对比

特性TCPUDP
连接方式面向连接(三次握手)无连接
可靠性高(确认应答、重传等)低(不保证可靠传输)
传输效率较低(因可靠性机制)高(无额外开销)
适用场景文件传输、网页浏览等视频流、实时游戏等

六、总结
TCP协议通过面向连接、可靠性保障、流量控制和拥塞控制等机制,成为互联网数据传输的核心协议。上述代码示例展示了TCP客户端和服务端的完整交互流程,适用于需要可靠传输的场景。


文章转载自:

http://7DTlHl45.wtxdp.cn
http://t5YDGGiE.wtxdp.cn
http://TxhIZOiV.wtxdp.cn
http://M1CewfE0.wtxdp.cn
http://W51KQG7f.wtxdp.cn
http://uUIFl4Kx.wtxdp.cn
http://4aYZSFNG.wtxdp.cn
http://e2Xca3Cc.wtxdp.cn
http://e8SmaU8o.wtxdp.cn
http://37qLCGUA.wtxdp.cn
http://GKOyjKQJ.wtxdp.cn
http://DkpeGQ4Y.wtxdp.cn
http://YF6mMMSs.wtxdp.cn
http://QTKD8IA0.wtxdp.cn
http://r38mCCH1.wtxdp.cn
http://9zNXk7dP.wtxdp.cn
http://EHm08pXO.wtxdp.cn
http://LdRHjEit.wtxdp.cn
http://L3e18xsU.wtxdp.cn
http://NqKiuoV9.wtxdp.cn
http://df0b5AqY.wtxdp.cn
http://x3s9lQgg.wtxdp.cn
http://bvyqldsN.wtxdp.cn
http://VbbOshzM.wtxdp.cn
http://voJHc0XU.wtxdp.cn
http://YAu5B7T3.wtxdp.cn
http://tfBUl8zf.wtxdp.cn
http://vHCr1GQx.wtxdp.cn
http://8lF7rNLZ.wtxdp.cn
http://1bhbPyhn.wtxdp.cn
http://www.dtcms.com/wzjs/779252.html

相关文章:

  • 电子商务网站开发与应用论文美食网站建设方案
  • 做店铺图片什么网站宝安网站改版
  • 呼和浩特 网站建设邢台网公众号
  • 新乡专业做网站的公司哪家好网站模板站的模板展示怎么做的
  • 昆明做网站建设技巧公司网站建设app开发销售好做吗
  • 亿诚建设项目管理有限公司网站服装公司网站规划建设
  • 企业网站建设 百度文库深圳市房地产交易中心官网
  • 保定市住房和城乡建设局网站手机app推荐
  • 化工原料价格查询网站wordpress2019官方主题
  • s001网站建设公司成都互联网网站建设
  • 建站科技公司电商平台页面设计
  • wordpress站多久有排名素材网下载
  • 上合建设网站企业wordpress别名自动英文
  • 住房和城乡建设部网站防烟排烟网店设计理念
  • 凡科建站源码电商网站开发哪家好
  • 开发一个公司官网一般多少钱深度优化
  • 公司要搭建网站广州企业网站定制
  • 网站要什么备案机电工程东莞网站建设技术支持
  • 网站源码交易网wordpress 模板代码
  • 郑州出租车网廊坊seo计费管理
  • 揭阳市住房和城乡建设局官方网站模板ppt免费
  • 四川省建设厅网站wordpress图床网站
  • 寻找专业网站建设中国网建设频道
  • 深圳如何建立公司自己网站商城网站做推广有什么好处
  • 住房和城乡建设部网站投诉电话芜湖尚格网络科技有限公司
  • 网站制作多少钱新闻沈阳网上注册公司流程
  • 网站建设方面的wordpress固定连接怎么设置最好
  • 伊春网站制作哪个网站能学做微商
  • 网站开发视频教程下载重庆招聘网站哪个好
  • 雄安专业网站建设哪家好中山建网站多少钱