用wireshark抓了个TCP通讯的包

昨儿个整理了下怎么用wireshark抓包,链接在这里:捋捋wireshark
今天打算抓个TCP通讯的包试试,整体来说比较有收获,给大家汇报一下。
首先就是如何搞到可以用来演示TCP通讯的客户端、服务端,问了下deepseek,win 10上可以用powershell这样启动一个监听8080端口的服务端:

文字版的贴到这里:
$listener = New-Object System.Net.Sockets.TcpListener('0.0.0.0', 8080)
$listener.Start()

用netstat查看一下监听状态,命令 netstat -ano | findstr -I "listen" | findstr 8080,效果:

把这个powershell窗口关闭,再启动一个看一下8080,就不是监听状态了:

莫怪我为何要写这一段,因为我没怎么用过powershell。。。咱继续。。。我这里用一个内网ip为192.168.1.183的windows 10办公电脑启动服务端,从内网ip为192.168.3.240的办公的笔记本上启动客户端、启动wireshark抓包,然后把每一步操作都写下来。

从内网台式机上启动服务端:

现在我们启动了服务端,等待客户端连接(注意光标的位置,阻塞、等待客户端连接)。这些命令的文字版最后帖到文末哈,这里看图就行。
确认一下8080端口启动了,顺便看看监听8080端口的进程信息,漂亮:

从笔记本上启动wireshark,选择从无线网上抓包,设定只捕获过和192.168.1.183:8080的tcp通讯:tcp port 8080 and host 192.168.1.183,

如果觉得这里表述不够详细,看本文开头说的那个帖子,我这里已经监听上了:

从笔记本上用powershell启动客户端:

这个命令会得到一个连接到服务端的客户端对象$client,wireshark捕捉到了三个握手的数据包:

现在我们给服务端发一点消息:

那个flush命令发出后,wireshark就抓到了这俩数据包:

现在该从服务端操作了,这个命令已经不是阻塞状态了:

应该是三次握手就不阻塞了,当时没看,不要在意这些细节,咱们收一下客户端发来的消息:

顺便说一句,这里获取reader/writer实例的写法跟php里的很像,powershell真是兼容并包啊。。

我们从服务端给客户端一些答复:

去看笔记本电脑上的wireshark,新抓到2个数据包:

从客户端接收一下服务端发来的消息,并给对方回复:

去看wireshark,又抓到俩数据包:

去服务端接收一下客户端的消息,给出回复:

去看wireshark,又抓到2个包:

从客户端接收一下:

是时候结束会话了,客户端:

wireshark抓到了2个挥手的包:

服务端:

wireshark又抓到了2个挥手的包:

继续关闭吧,客户端:

服务端:

台式机的8080端口也不是被监听的状态了:

wireshark结束监听,保存包:

附文字命令,服务端:
$listener = New-Object System.Net.Sockets.TcpListener('0.0.0.0', 8080)
$listener.Start()
Write-Host "服务端已启动,等待客户端连接..."
$client = $listener.AcceptTcpClient()
$stream = $client.GetStream()
$reader = [System.IO.StreamReader]::new($stream)
$writer = [System.IO.StreamWriter]::new($stream)
$message = $reader.ReadLine()
Write-Host "收到客户端消息: $message"
$writer.WriteLine("已收到: $message;问:你这瓜保熟吗?")
$writer.Flush()
$message = $reader.ReadLine()
Write-Host "收到客户端消息: $message"
$writer.WriteLine("知道了,再探再报")
$writer.Flush()
$reader.Close()
$writer.Close()
$client.Close()
$listener.Stop()

客户端:
$client = New-Object System.Net.Sockets.TcpClient("192.168.1.183", 8080)
$stream = $client.GetStream()
$reader = New-Object System.IO.StreamReader($stream)
$writer = New-Object System.IO.StreamWriter($stream)
$writer.WriteLine("号外,阿三的阵风被小巴的歼十打下来了")
$writer.Flush()
$response = $reader.ReadLine()
Write-Host "收到服务端消息: $response"
$writer.WriteLine("是真的,网上视频都出来了")
$writer.Flush()
$response = $reader.ReadLine()
Write-Host "收到服务端消息: $response"
$reader.Close()
$writer.Close()
$client.Close()

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

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

相关文章

运维 pgsql 安装完后某次启动不了

pgsql 安装完后某次启动不了 错误 data directory "/usr/local/postgresql/data" has invalid permissions 安装成功后一直可以 后面同事敲了 chmod -R 777 /usr/local 导致不行 改到了 /usr/local/postgresql/data 权限 /usr/local/postgresql/data的权限有限…

查看·电脑安装·的 .NET 版本

方法 一:使用命令提示符或 PowerShell 打开命令提示符或 PowerShell。 输入以下命令:dotnet --version 按下回车键。 命令输出将显示已安装的 .NET 版本。 方法二:使用 .NET Framework 控制面板 打开控制面板。 点击“程序”。 点击“程序…

Linux WiFi 模组使用及故障排查整理文档

Linux WiFi 模组使用及故障排查整理文档 1. STA 模式下 WiFi 延时不稳定问题解决方法: 2. Power Saving 机制说明3. AP 模式下 WiFi 设置4. RTL8821CS AP 模式下 Windows 客户端异常断开问题问题描述问题原因解决方案步骤 1:修改 dnsmasq 配置步骤 2&…

mac mini m4命令行管理员密码设置

附上系统版本图 初次使用命令行管理员,让输入密码,无论是输入登录密码还是账号密码,都是错的,百思不得其解,去网上搜说就是登录密码啊 直到后来看到了苹果官方的文档 https://support.apple.com/zh-cn/102367 https…

栈内行为分析

栈内行为分析 一、源码分析 我们以以下简单的 C 程序为例&#xff0c;通过 GDB 动态调试分析函数调用过程中的栈内布局变化&#xff1a; #include <stdio.h> int add(){int a 10;int b 20;return (a b); }int main() {add();return 0; }编译为 32 位程序&#xff1a…

老旧设备数据采集破局 AI图像解析如何让质检LIMS系统焕发新生

在实验室数字化进程中&#xff0c;大量服役超过 10 年的老旧设备成为数据采集的 “拦路虎”&#xff1a;指针式仪表盘需人工读取、纸质原始记录靠手工录入、非标准接口设备数据无法自动获取…… 某化工实验室因 15 台老旧设备数据采集耗时占比达 40%&#xff0c;检测效率长期滞…

【征求意见】四川省大数据发展研究会关于对《数据资源建设费用测算标准》团体标准征求意见的通知

四川省大数据发展研究会 关于对《数据资源建设费用测算标准》团体标准征求意见的通知 各有关单位&#xff1a; 由四川省大数据发展研究会归口、成都东契奇科技有限公司牵头编制的《数据资源建设费用测算标准》团体标准已形成征求意见稿&#xff0c;现公开征求意见。请于2025年…

element上传文件多选 实现文件排序

上传文件多选排序 只上代码 不多逼逼 这是el-elment 的文件上传 <el-uploadaction"#"list-type"picture-card"ref"upload":accept"accept":on-change"onUploadChange":file-list"fileList":http-request&quo…

.NET 查找 DLL 的路径顺序

在 C# 中&#xff0c;[DllImport("SgCamWrapper.dll")] 这行代码表明它会在运行时从当前可执行文件的搜索路径中查找 SgCamWrapper.dll。具体搜索顺序如下&#xff08;按优先级&#xff09;&#xff1a; ✅ .NET 查找 DLL 的路径顺序&#xff1a; 应用程序启动目录&a…

低代码——表单生成器以form-generator为例

主要执行流程说明&#xff1a; 初始化阶段 &#xff1a; 接收表单配置对象formConf深拷贝配置&#xff0c;初始化表单数据和验证规则处理每个表单组件的默认值和特殊配置&#xff08;如文件上传&#xff09; 渲染阶段 &#xff1a; 通过render函数创建el-form根组件递归渲染表…

自定义载板RK3588HDMI输入配置完整解决方案

Orange Pi 5 Plus HDMI输入配置完整解决方案 &#x1f4cb; 项目概述 本文档记录了Orange Pi 5 Plus HDMI1接口配置问题的完整分析和解决过程。从初始的"disconnected"状态问题&#xff0c;到最终实现HDMI输入功能的全过程技术分析。 &#x1f3af; 问题描述 初始…

SAAS架构设计2-流程图-用户与租户之间对应关系图

在SAAS&#xff08;Software as a Service&#xff0c;软件即服务&#xff09;结构中&#xff0c;用户与租户之间的关系可以通过一对一和多对多两种方式来定义。这两种关系模式各自有着不同的应用场景和特点。 用户和租户的关系&#xff08;一对一&#xff09; 一对一关系 在这…

Spring Boot微服务架构(八):开发之初就引入APM工具监控

使用 APM&#xff08;Application Performance Management&#xff09;工具监控 Spring Boot 应用&#xff0c;可以帮助开发者实时追踪性能瓶颈、分析调用链路、监控资源使用情况&#xff0c;并快速定位故障。以下是详细的步骤和常用工具的选择指南&#xff1a; ​​一、常用 A…

Python 如何让自动驾驶的“眼睛”和“大脑”真正融合?——传感器数据融合的关键技术解析

Python 如何让自动驾驶的“眼睛”和“大脑”真正融合?——传感器数据融合的关键技术解析 自动驾驶技术从来都不是“单兵作战”。如果你细看一辆自动驾驶汽车,它其实是一个传感器的集合体:摄像头、激光雷达(LiDAR)、毫米波雷达、超声波传感器、GPS……这些传感器各自发挥作…

《软件工程》第 12 章 - 软件测试

软件测试是确保软件质量的关键环节&#xff0c;它通过执行程序来发现错误&#xff0c;验证软件是否满足需求。本章将依据目录&#xff0c;结合 Java 代码示例、可视化图表&#xff0c;深入讲解软件测试的概念、过程、方法及实践。 12.1 软件测试的概念 12.1.1 软件测试的任务 …

面试题 08.08. 有重复字符串的排列组合【 力扣(LeetCode) 】

文章目录 零、原题链接一、题目描述二、测试用例三、解题思路四、参考代码 零、原题链接 面试题 08.08. 有重复字符串的排列组合 一、题目描述 有重复字符串的排列组合。编写一种方法&#xff0c;计算某字符串的所有排列组合。 二、测试用例 示例 1&#xff1a; 输入&#…

【Linux】关于权限的理解

目录 一、Linux用户的分类 1.Linux下的两种用户 2.两种用户提示符的区别 3.用户的切换方法 二、Linux的权限管理 1.文件访问者分类 2.常见文件类型 3.文件访问权限 4.权限检查逻辑 5.文件权限的表示方式 三、与文件访问权限相关的设置方法 1.前提&#xff1a; 2.如…

前端antd,后端fastapi,解决文件上传

一、技术架构概述 前端框架&#xff1a;React Ant Design 5.x 使用antd的Upload组件&#xff08;支持拖拽/多文件/分片&#xff09; 后端框架&#xff1a;Python FastAPI 利用UploadFile类处理文件流 传输协议&#xff1a;HTTP FormData&#xff08;兼容性强&#xff09; 二…

⭐️⭐️⭐️ 模拟题及答案 ⭐️⭐️⭐️ 大模型Clouder认证:RAG应用构建及优化

考试注意事项: 一、单选题(21题) 检索增强生成(RAG)的核心技术结合了什么? A. 图像识别与自然语言处理 B. 信息检索与文本生成 C. 语音识别与知识图谱 D. 数据挖掘与机器学习 RAG技术中,“建立索引”步骤不包括以下哪项操作? A. 将文档解析为纯文本 B. 文本片段分割(…

为什么建立 TCP 连接时,初始序列号不固定?

主要原因有两个方面&#xff1a; 很大程度上避免历史报文被下一个相同四元组的 TCP 连接接收问题&#xff08;主要方面&#xff09;防止黑客伪造相同序列号的 TCP 报文被接收 接下来&#xff0c;详细说说第一点 假设每次建立 TCP 连接时&#xff0c;客户端和服务端的初始序列…