用wireshark抓了个TCP通讯的包

article/2025/8/7 15:47:14

昨儿个整理了下怎么用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.hkcw.cn/article/hnklUsfoga.shtml

相关文章

AWS WAF设置IP白名单

目标 设置一个组白名单IP地址,当发现是这些IP地址发过来的请求后,WAF自动放行。 创建IP集 打开WAF页面,开始IP集创建如下图: 设置ip集,如下图: aws waf acl配置白名单 找到Web ACL,开始在…

随笔20250530 C# 整合 IC卡读写技术解析与实现

以下是一个完整、最简化的 FeliCa 读取整合示例(无需 SDK,基于 PCSC NuGet 包),你可以直接运行这个控制台程序,验证能否识别 RC-S300 并读取卡片 UID: 🧪 示例说明 📦 使用 NuGet 包…

day024-网络基础-TCP与UDP、DNS

文章目录 1. 李导推荐书籍2. OSI七层模型2.1 传输层2.2 网络层2.2.1 问:两端处于不同局域网的设备怎么网络通信? 2.3 数据链路层2.4 物理层2.5 图解OSI七层模型 3. 数据传输模式3.1 全双工3.2 半双工3.3 单工 4. TCP 3次握手4.1 抓包 5. TCP 4次挥手5.1 …

AI赋能开源:如何借助MCP快速解锁开源项目并提交你的首个PR

引子 很多同学都梦想为开源项目贡献力量,然而现实往往是——面对庞大复杂的项目,从入门到提交第一个有实质性代码的PR,时间跨度可能长达数年。传统路径通常是先从文档贡献开始,逐步深入理解项目架构,最终才能进行代码…

智能问数技术路径对比:NL2SQL vs NL2Semantic2SQL

在人工智能浪潮席卷数据分析领域的当下,“智能问数”凭借其自然语言交互的便捷性,迅速成为企业提升数据民主化与决策效率的焦点。大语言模型(LLM)展现出的强大语言理解和生成能力,无疑为这一愿景启动了引擎。 然而&am…

QT-Creator安装教程(windows)

目录 1,下载 1.1 镜像源下载 1.2 运行下载的exe文件 1.2.1 QT5 版本安装 1.2.2 QT6 版本安装 1.2.3 如何在安装完成之后,继续添加扩展包 1,下载 1.1 镜像源下载 地址:Index of /qtproject/ 根据电脑系统选择下载linux、macO…

Warm-Flow发布1.7.3 端午节(设计器流和流程图大升级)

Warm-Flow发布1.7.3 端午节(设计器流和流程图大升级) 更新内容项目介绍功能思维导图演示地址官网Warm-Flow视频 更新内容 [feat] 新版流程图通过前端渲染[perf] 美化流程设计器ui[feat] 办理人权限处理器,新增办理人转换接口,比如…

分布式锁Redisson使用

redission为我们提供了方便使用redis集群的方法&#xff0c;可以使用它完成锁的建立。 依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.36.0</version></dependency>spring引…

Unity UI系统中RectTransform详解

一、基础代码示例 public GameObject node; var rect node.GetComponent<RectTransform>();Debug.Log($"anchoredPosition----{rect.anchoredPosition}"); Debug.Log($"offsetMin.x--{rect.offsetMin}"); Debug.Log($"offsetMax.x--{rect.of…

神经网络(Neural Networks)

设计神经网络的最初动机是编写能够模仿人类大脑学习和思考方式的软件。现今&#xff0c;神经网络也被称为人工神经网络&#xff0c;其工作方式已经与我们所认为的大脑实际工作方式和学习方式大不相同。 研究神经网络的工作始于 20 世纪 50 年代&#xff0c;之后的一段时间它并不…

DeepSeek‑R1-0528 重磅升级:蚂蚁百宝箱免费、无限量调用

DeepSeek‑R1-0528 重磅升级&#xff1a;蚂蚁百宝箱免费、无限量调用 端午假期前一天&#xff0c;DeepSeek‑R1 更新到了 0528 版本&#xff01; 官方说明&#xff1a;0528 版本在深度思考与推理能力方面显著增强——在数学、编程与通用逻辑等多项基准测评中&#xff0c;表现已…

可定制化货代管理系统,适应不同业务模式需求!

在全球化贸易的浪潮下&#xff0c;货运代理行业扮演着至关重要的角色。然而&#xff0c;随着市场竞争的日益激烈&#xff0c;货代企业面临着越来越多的挑战&#xff1a;客户需求多样化、业务流程复杂化、运营成本上升、利润空间压缩……这些挑战迫使货代企业不断寻求创新和突破…

使用基于Xsens惯性传感器的动作捕捉技术测量人体工程学

由于单调和片面的体力消耗&#xff0c;牙科领域的从业者患肌肉骨骼疾病 (MSD) 的几率很高。惯性测量单元 (IMU) 越来越成为评估工作姿势风险的焦点。因此&#xff0c;本研究旨在使用基于惯性传感器的运动捕捉 (MoCap) 评估人体工程学讲座和培训干预对牙科助理学生的姿势风险和M…

设计模式之结构型:桥接模式

桥接模式(Bridge Pattern) 定义 桥接模式是一种​​结构型设计模式​​&#xff0c;通过​​将抽象部分与实现部分分离​​&#xff0c;使它们可以独立变化。它通过组合代替继承&#xff0c;解决多层继承导致的类爆炸问题&#xff0c;适用于​​多维度变化​​的场景(如形状与颜…

Spring Boot 3 整合 MQ 构建聊天消息存储系统

引子 在构建实时聊天服务时&#xff0c;我们既要保证消息的即时传递&#xff0c;又需要对消息进行持久化存储以便查询历史记录。然而&#xff0c;直接同步写入数据库在高并发场景下容易成为性能瓶颈&#xff0c;影响消息的实时性。秉承"没有什么问题是加一层解决不了的&q…

0-EATSA-GNN:基于图节点分类师生机制的边缘感知和两阶段注意力增强图神经网络(code)

code:https://github.com/afofanah/EATSA-GNN. 文章目录 Abstract1. Introduction1.1.动态图场景1.2.EATSA-GNN框架的背景化2. Background2.1.GNN边缘感知挑战2.2.GNN的可解释性问题2.3.EATSA-GNN可解释性3. Related worksAbstract 图神经网络(GNNs)从根本上改变了我们处理和…

解决开发者技能差距:AI 在提升效率与技能培养中的作用

企业在开发者人才方面正面临双重挑战。一方面&#xff0c;IDC 预测&#xff0c;到2025年&#xff0c;全球全职开发者将短缺400万人&#xff1b;另一方面&#xff0c;一些行业巨头已暂停开发者招聘&#xff0c;转而倚重人工智能&#xff08;AI&#xff09;来满足开发需求。这不禁…

内存池学习(一)

一、内存池 1、内存池所使用的内存是什么内存&#xff1f; 指的是虚拟内存&#xff08;堆空间&#xff09;&#xff0c;而不是物理内存 2、为什么会有内存池&#xff1f; 一个系统或者程序长期运行&#xff0c;突然会coredump掉&#xff0c;并且程序又频繁地分配和释放内存…

【TTS】基于GRPO的流匹配文本到语音改进:F5R-TTS

论文地址&#xff1a;https://arxiv.org/abs/2504.02407v3 摘要 我们提出了F5R-TTS&#xff0c;这是一种新颖的文本到语音(TTS)系统&#xff0c;它将群体相对策略优化(GRPO)集成到基于流匹配的架构中。 通过将流匹配TTS的确定性输出重新表述为概率高斯分布&#xff0c;我们的方…

现代密码学入门 | 现代密码学核心特点介绍

在当今互联互通的世界中&#xff0c;数字数据在全球范围内不断流动&#xff0c;安全通信和数据保护的需求从未如此迫切。现代密码学作为数字防御的先锋&#xff0c;提供了一系列复杂的技术和算法&#xff0c;以保护信息免受窥探和恶意行为的侵害。 现代密码学是从其古典前身—…