网站建设制作设计seo优化珠海/深圳最好seo

网站建设制作设计seo优化珠海,深圳最好seo,桐柏网站建设,北京东城网站建设公司TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它广泛应用于互联网中的数据通信,如网页浏览、文件传输、电子邮件等。以下是TCP通信的基本概念和工作原理: 1. TCP的特点 面向连接:通信前…

     TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它广泛应用于互联网中的数据通信,如网页浏览、文件传输、电子邮件等。以下是TCP通信的基本概念和工作原理:

1. TCP的特点

面向连接:通信前需建立连接,通信结束后释放连接。

可靠性:通过确认、重传、校验等机制确保数据准确无误地传输。

有序性:数据按发送顺序到达接收方。

流量控制:通过滑动窗口机制防止接收方被发送方的数据淹没。

拥塞控制:通过拥塞窗口和算法避免网络拥塞。

2. TCP通信的基本流程

  1. )建立连接(三次握手):

    • SYN:客户端发送SYN报文(SYN=1,seq=x)请求连接。

    • SYN-ACK:服务器回复SYN-ACK报文(SYN=1,ACK=1,seq=y,ack=x+1)。

    • ACK:客户端发送ACK报文(ACK=1,seq=x+1,ack=y+1)确认连接。

  2. )数据传输:

    • 连接建立后,双方通过发送和接收数据包进行通信。

    • 每个数据包都有序列号和确认号,确保数据有序且可靠。

  3. )断开连接(四次挥手):

    • FIN:一方发送FIN报文(FIN=1,seq=u)请求关闭连接。

    • ACK:另一方回复ACK报文(ACK=1,seq=v,ack=u+1)确认关闭请求。

    • FIN:另一方发送FIN报文(FIN=1,seq=w,ack=u+1)请求关闭连接。

    • ACK:一方回复ACK报文(ACK=1,seq=u+1,ack=w+1)确认关闭请求。

3. TCP报文结构

TCP报文包括以下字段:

源端口和目的端口:标识通信的应用程序。

序列号(Sequence Number):标识数据字节流的顺序。

确认号(Acknowledgment Number):期望收到的下一个字节的序列号。

数据偏移:TCP头部的长度。

控制位:如SYN、ACK、FIN等,用于控制连接状态。

窗口大小:用于流量控制。

校验和:用于错误检测。

紧急指针:标识紧急数据的位置。

4. TCP的应用场景

HTTP/HTTPS:网页浏览。

FTP:文件传输。

SMTP/POP3/IMAP:电子邮件。

SSH:远程登录。

数据库连接:如MySQL、PostgreSQL等。

5. TCP与UDP的区别

TCP:可靠、面向连接、有序,适合对可靠性要求高的场景。

UDP:不可靠、无连接、无序,适合对实时性要求高的场景,如视频流、在线游戏。

6. TCP的优缺点

优点:可靠性高,数据有序,适合长连接和大量数据传输。

缺点:建立和断开连接开销大,实时性较差。

主窗口UI

TCP窗口

调试助手

TCP与网络助手之间的通讯

网络助手发送消息在主窗口与TCP窗口同时显示

主窗口与网络助手之间的通讯

TCP窗口

1,创建字段及委托

public Socket socket = null;
public delegate void SetText(string text);//本窗口跨线程委托
public Tcp_ServerRevStr tcp_ServerRevStr;//其他窗口跨线程委托

2,创建及连接

socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//实例化Socket
IPAddress iPAddress = IPAddress.Parse("127.0.0.1");//定义要连接的IP
int port = 502;//默认Port 端口  接口
IPEndPoint iPEnd = new IPEndPoint(iPAddress, port);
try
{socket.Connect(iPEnd);//链接Socket
}
catch (Exception ex)
{MessageBox.Show("链接失败"+ex.Message);
}
Thread th = new Thread(ReceiveDate);//另开线程接受消息
th.IsBackground = true;//后台线程
th.Start();//开启

3,显示消息

//防止跨线程给界面赋值出错
if (this.RcvText.InvokeRequired)//先判断是否需要委托
{SetText st = new SetText(ShowText);this.Invoke(st, new object[] { text });
}
else
{this.RcvText.Text = text;
}

4,接收消息

while (true)
{byte[] resBuffer = new byte[1024 * 2];//生命最大字符内存int length = -1;//字节长度try{length = socket.Receive(resBuffer);}catch (SocketException ex){break;}catch (Exception ex){MessageBox.Show("与服务器断开:" + ex.Message);}if (length > 0)//接收消息{try{string msg = Encoding.Default.GetString(resBuffer);ShowText(msg);tcp_ServerRevStr(msg);//其他窗口跨线程委托调用}catch (Exception ex){MessageBox.Show(ex.Message);}}}

5,发送消息

public void sendMessage(string text)
{try{byte[] buffer = Encoding.Default.GetBytes(text);socket.Send(buffer);//发送数据}catch (Exception ex){MessageBox.Show(ex.Message);}
}

FormMain窗口

1,委托

 public delegate void Tcp_ServerRevStr(string msg1);//服务端委托

2,实例化窗口

 FormTcpService formTcp = new FormTcpService();//实例化TCP窗口

3,加载窗口

  private void button1_Click(object sender, EventArgs e){formTcp.Show();formTcp.tcp_ServerRevStr   += tcpClientReceviceStr;}

4,接受并显示消息

private void tcpClientReceviceStr(string msg)
{//跨线程接受消息Action action;action = delegate(){textBox1.Text = msg;};this.Invoke(action);
}

5,发送消息

private void btn_senMessage_Click(object sender, EventArgs e)
{formTcp.sendMessage(this.textBox2.Text);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/72538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【有源码】仿DeepSeek问答网站+SpringBoot+VUE3+对接DeepSeek API

今天带来一款优秀的项目:仿DeepSeek问答网站。 功能和官网差不多,也有历史上下文,流失对话等。 本文介绍了系统功能与部署安装步骤,如果您有任何问题,也请联系学姐,偶现在是经验丰富的程序员! …

Ubuntu20.04双系统安装及软件安装(七):Anaconda3

Ubuntu20.04双系统安装及软件安装(七):Anaconda3 打开Anaconda官网,在右侧处填写邮箱(要真实有效!),然后Submit。会出现如图示的Success界面。 进入填写的邮箱,有一封Ana…

洛谷 P2142 高精度减法(详解)c++

题目链接:P2142 高精度减法 - 洛谷 1.题目 2.算法原理 解法:模拟列竖式计算的过程 先用字符串读入,然后拆分每一位,逆序放进数组中利用数组,模拟列竖式减法的过程 在这两步之前要多加一步,在模拟解法的过程&#…

微服务组件详解——sentinel

1.启动sentinel: 下载jar sentinel-dashboard-1.8.0.jar 使用以下命令直接运行 jar 包(JDK 版本必须≥ 1.8): java -Dserver.port9999 -jar D:\sentinel-dashboard-1.8.0.jar 控制台访问地址:http://localhost:9999…

AI数据分析:deepseek生成SQL

在当今数据驱动的时代,数据分析已成为企业和个人决策的重要工具。随着人工智能技术的快速发展,AI 驱动的数据分析工具正在改变我们处理和分析数据的方式。本文将着重介绍如何使用 DeepSeek 进行自动补全SQL 查询语句。 我们都知道,SQL 查询语…

动态规划01背包问题系列一>目标和

目录 题目分析及优化:状态表示:状态转移方程:初始化:填表顺序:返回值:代码呈现:优化:代码呈现: 题目分析及优化: 状态表示: 状态转移方程&#xf…

Linux 基础---sudo权限 修改文件所属人、用户所属组

sudo 概念:让普通用户使用管理员权限执行一些操作(root) 在命令前加上sudo 即可 修改文件所属人、所属组

HMC7043和HMC7044芯片配置使用

一,HMC7043芯片 MC7043独特的特性是对14个通道分别进行独立灵活的相位管理。所有14个通道均支持频率和相位调整。这些输出还可针对50 Ω或100 Ω内部和外部端接选项进行编程。HMC7043器件具有RF SYNC功能,支持确定性同步多个HMC7043器件,即确保所有时钟输出从同一时钟沿开始…

【动手实验】TCP半连接队列、全连接队列实战分析

本文是对 从一次线上问题说起,详解 TCP 半连接队列、全连接队列 这篇文章的实验复现和总结,借此加深对 TCP 半连接队列、全连接队列的理解。 实验环境 两台腾讯云服务器 node2(172.19.0.12) 和 node3(172.19.0.15&am…

大模型训练微调技术介绍

大模型训练微调技术是人工智能领域中的一项重要技术,旨在通过少量特定领域的数据对预训练模型进行进一步训练,使其更好地适应具体任务或应用场景。以下是关于大模型训练微调技术的详细介绍: 1. 微调技术的定义与意义 微调(Fine-…

javaweb自用笔记:Vue

Vue 什么是vue vue案例 1、引入vue.js文件 2、定义vue对象 3、定义vue接管的区域el 4、定义数据模型data 5、定义视图div 6、通过标签v-model来绑定数据模型 7、{{message}}直接将数据模型message展示出来 8、由于vue的双向数据绑定,当视图层标签input里的…

基于eRDMA实测DeepSeek开源的3FS

DeepSeek昨天开源了3FS分布式文件系统, 通过180个存储节点提供了 6.6TiB/s的存储性能, 全面支持大模型的训练和推理的KVCache转存以及向量数据库等能力, 每个客户端节点支持40GB/s峰值吞吐用于KVCache查找. 发布后, 我们在阿里云ECS上进行了快速的复现, 并进行了性能测试, ECS…

计算机毕业设计SpringBoot+Vue.js医院挂号就诊系统(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

Linux的用户与权限--第二天

认知root用户(超级管理员) root用户用于最大的系统操作权限 普通用户的权限,一般在HOME目录内部不受限制 su与exit命令 su命令: su [-] 用户名 -符号是可选的,表示切换用户后加载环境变量 参数为用户名&#xff0c…

计算机网络软考

1.物理层 1.两个主机之间发送数据的过程 自上而下的封装数据,自下而上的解封装数据,实现数据的传输 2.数据、信号、码元 码元就是数字通信里用来表示信息的基本信号单元。比如在二进制中,用高电平代表 “1”、低电平代表 “0”&#xff0c…

第四十一:Axios 模型的 get ,post请求

Axios 的 get 请求方式 9.双向数据绑定 v-model - 邓瑞编程 Axios 的 post 请求方式:

【JQuery—前端快速入门】JQuery 操作元素

JQuery 操作元素 1. 获取/修改元素内容 三个简单的获取元素的方法: 这三个方法即可以获取元素的内容,又可以设置元素的内容. 有参数时,就进行元素的值设置,没有参数时,就进行元素内容的获取. 接下来,我们需…

2025年4月1日-2日AutoCable 中国汽车线束线缆及连接技术创新峰会即将开幕

正如人体的心脏与四肢之间需要靠神经和血管连接,汽车的各个部件,也要靠各种电线、管道连接。线束,就是汽车的神经和血管,车主向汽车下达的每一个功能指令,都通过线束来传递,看似不起眼的线束,却…

深度学习神经网络分类原理

每一个神经元做的是一个类似回归的操作 最后一层是softmax函数,每一个输出就会变成一个0到1之间的数,也就是概率,然后他们之间的和加起来等于1,到底是哪一个分类就是看哪个神经元的这个值最大。 那么如何算损失呢: 加…

硬核技术组合!用 DeepSeek R1、Ollama、Docker、RAGFlow 打造专属本地知识库

文章目录 一、引言二、安装Ollama部署DeepSeekR1三、安装Docker四、安装使用RAGFlow4.1 系统架构4.2 部署流程4.3 使用RAGFlow4.4 在RAGFlow中新增模型4.5 创建知识库4.6 创建私人助理使用RGA 一、引言 本地部署DeepSeek R1 Ollama RAGFlow构建个人知识库,通过将…