目录1.ServerSocketAPI(给服务器端使用的类)2.SocketAPI(既给服务器使用,也给客户端使用)3.写TCP回显—服务器4.使用线程池后的TCP服务器代码(最终)5.写回显-客户端6.TCP回显—客户端代码7.运行回显服务器和客户端TCP流套接字编程1.ServerSocketAPI(给服务器端使用的类) ServerSocket是创建TCP服务端Socket的API。 构造方法方法签名说明ServerSocket(intport)创建一个服务端流套接字Socket,并绑定到指定端口方法方法签名说明Socketaccept()开始监听指定端口(创建时绑定的端口),有客户端连
四层模型五层模型七层模型每层作用物理层:传输比特流数据链路层:控制网络层和物理层之间的通信网络层:IP寻址和路由选择传输层:建立、维护、管理端到端连接会话层:建立、维护、管理会话连接表示层:数据格式化,加密、解密、应用层:为应用程序提供网络服务 每层对应协议(存疑)物理层:IEEE802数据链路层:HDLC、PPP、SLIP、ARP网络层:IP、ICMP、RIP、OSPF传输层:TCP、UDP会话层:ADSP、RPC表示层:ASCII、SSL/TLS应用层:HTTP、FTP、TELNET、SMTP、DNS每层对应数据传输单位 物理层:比特数据链路层:帧网络层:报文传输层:TPDU会话层:SPD
目录TCPTool概述1TCPTool简介2软件运行环境3软件安装4应用场景5软件主界面TcpTool配置选项1设置软件界面风格2设置发送选项3设置接收选项TCPTool基础操作1保存当前调试2打开历史调试3新建服务端4启动和停止服务端5新建客户端6连接服务端并调试下载地址TCPTool概述1TCPTool简介TCPTool是一款通用的TCP调试工具,基于QT框架开发,可以运行在Windows、Linux和MacOS平台下,具备良好的跨平台能力。TCPTool调试工具无需安装,下载后解压就可以使用,是一款绿色的软件,易于部署和使用。可以广泛应用于调试设备、调试后台和调试协议等工作,也可用于学习
当GitHub提示“Permissiondenied(publickey)”错误,这通常意味着您的SSH密钥没有被正确地配置。以下是一些常见的解决步骤,帮助您诊断和解决该问题:检查是否已设置SSH密钥:运行以下命令检查是否存在SSH密钥:bashCopycodels-al~/.ssh这将列出.ssh目录下的所有文件。您应该看到id_rsa和id_rsa.pub(或相应的名称,如您选择的其他名称或类型)。创建一个新的SSH密钥:如果您没有SSH密钥,可以使用以下命令创建一个:cssCopycodessh-keygen-trsa-b4096-C"your_email@example.com"只需按
TCP/IP体系结构模型在市场化过程中成功了,而OSI模型在市场化过程中失败了的深层次原因1.TCP/IP和OSI参考模型的发展历史1.1TCP/IP的发展历史 在20世纪60年代,在美国国防高级研究计划局(DARPA)的支持下,启动了一个项目,将美国几家研究中心和大学的计算机连接起来。到20世纪60年代末,这导致了广域网络ARPANET的创建,该网络基于一种称为接口消息处理器(IMP)的交换机(即小型“连接计算机”)。ARPANET被证明是后来成为互联网的最早的先驱。通信协议,网络控制系统的开发是在1969年开始的。在接下来的几年里,NCP逐渐得到扩展和改进。1975年,主要由科学家和工程
1、06(0x06)写单个寄存器使用该功能码能将一个保持寄存器的值写入到远程地址中2、发送报文格式更详细的格式如下:MBAP报文头+功能码+寄存器地址高位+寄存器地址低位+输出值高位+输出值低位,一共12个字节。3、返回报文格式更详细的格式如下:MBAP报文头+功能码+寄存器地址高位+寄存器地址低位+输出值高位+输出值低位,一共12个字节。4、案例从站地址:1保持寄存器地址:8输出值:1000假设要将从站地址为1,地址为8的保持寄存器的值设置为10004.1发送报文如下:0x00、0x04、0x00、0x00、0x00、0x06、0x01、0x06、0x00、0x08、0x03、0xe8每个字
title:《网络协议》03.传输层(TCP&UDP)date:2022-09-0422:37:11updated:2023-11-0815:58:52categories:学习记录:网络协议excerpt:传输层、UDP、TCP(可靠传输,流量控制,拥塞控制,三次握手,四次挥手)。comments:falsetags:top_image:/images/backimg/SunsetClimbing.png网络协议1:网络互连模型1.1:请求过程1.2:网络分层2:传输层3:UDP4:TCP4.1:首部4.1.1:序号4.1.2:确认号4.1.3:数据偏移4.1.4:保留4.1.5:标志位4.
一:TCP粘包介绍1.1TCP介绍如上图,TCP具有面向连接、可靠、基于字节流三大特点。字节流可以理解为一个双向的通道里流淌的数据,这个数据其实就是我们常说的二进制数据,简单来说就是一大堆01串。纯裸TCP收发的这些01串之间是没有任何边界的,你根本不知道到哪个地方才算一条完整消息。tcp是流式传输没有数据包的概念,所以每次会先把缓冲池填满再发送,这就会偶尔出现一种一段信息分了两次传输的情况,所以可以在传输协议规定数据长度,让另一端更好的识别传输过来的数据正因为这个没有任何边界的特点,所以当我们选择使用TCP发送"夏洛"和"特烦恼"的时候,接收端收到的就是"夏洛特烦恼",这时候接收端没发区分你
目录数据接收流程图硬件层网络层ip_rcvip_rcv_coreip_rcv_finish和ip_rcv_finish_coreip_local_deliverip_local_deliver_finish和ip_protocol_deliver_rcu传输层tcp_v4_rcvtcp_v4_do_rcvtcp_rcv_state_processtcp_rcv_establishedtcp_recvmsg数据结构ethhdriphdrtcphdrudphdrsocketsocksock_commonsk_bufflinux内核源码下载:https://cdn.kernel.org/pub/li
背景:由于新换了电脑,新装了git,所以在用git拉取代码的时候就出现了标题一样的错误ternimal下出现下面错误:Permissiondenied(publickey).fatal:Couldnotreadfromremoterepository.Pleasemakesureyouhavethecorrectaccessrightsandtherepositoryexists.分析原因:原因是由于你在本地(或者服务器上)没有生成ssh key,可执行cd~/.sshls来查看,此时查不到内容,没有key也就意味着不安全,所以才会被拒绝远程链接代码仓库。解决办法:1.首先,如果你没有sshk