Go语言网络监控利器wiremonitor:轻量级命令行抓包与流量分析实战

news2026/5/11 0:44:52
1. 项目概述一个网络流量监控的瑞士军刀如果你和我一样经常需要和网络协议、数据包打交道无论是排查一个诡异的API超时还是想搞清楚某个应用到底在后台和哪些服务器“窃窃私语”你肯定知道抓包工具的重要性。Wireshark是行业标杆功能强大但有时候它太“重”了。在服务器上、在命令行环境里、或者当你只想快速过滤出特定端口的流量并实时查看时一个轻量、高效、纯粹的命令行工具就显得尤为珍贵。今天要聊的这个项目psandis/wiremonitor就是这样一个工具。你可以把它理解为一个用Go语言编写的、专注于实时网络流量监控的命令行版“Wireshark精简版”。它的核心价值在于“快速”和“聚焦”。不需要复杂的GUI不需要安装庞大的依赖一个二进制文件扔到系统里就能让你像看日志一样实时地“看到”流经你网卡的数据包。这对于后端开发、运维、安全分析甚至是前端开发者在调试跨域或API问题时都是一个极具效率的利器。它的名字wiremonitor直白地揭示了它的使命监控Monitor线缆Wire上的数据。项目作者psandis构建它的初衷我相信就是为了填补在纯命令行环境下进行灵活、可定制数据包捕获与分析的工具空白。接下来我会带你深入这个工具的内部从设计思路到每一个实操细节分享如何将它用到极致以及我踩过的一些坑。2. 核心设计思路与工作原理解析2.1 为什么选择Go语言与gopacket库wiremonitor选择用Go语言实现这背后有非常务实的考量。Go语言编译生成的是静态链接的单一二进制文件这意味着极高的部署便利性。你可以在你的开发机比如macOS上编译好然后直接scp到一台干净的Linux生产服务器上运行无需担心对方系统缺少什么libpcap的特定版本或者其他运行时依赖。这种“一次编译到处运行”特指类Unix系统的特性对于运维工具来说是黄金标准。其核心能力建立在gopacket这个强大的Go语言数据包处理库之上。gopacket本身是对经典的C语言库libpcap以及它的Windows版本WinPcap/Npcap的Go绑定封装。libpcap是几乎所有网络嗅探工具的基石包括tcpdump和Wireshark。gopacket不仅提供了捕获数据包的底层接口更重要的是它提供了一套完整、高效的数据包解码和组装能力能够从以太网帧开始层层解析出IP、TCP/UDP甚至到HTTP等应用层协议的内容。wiremonitor的设计哲学是“管道化”和“过滤器化”。它本身并不试图成为另一个Wireshark去实现所有协议解析和GUI展示而是专注于成为一个高效的数据包捕获、过滤和格式化输出引擎。它捕获原始数据包利用gopacket进行解码然后根据用户提供的过滤条件如BPF语法和输出格式如纯文本、JSON进行加工最后将结果实时打印到标准输出stdout。这种设计使得它可以轻松地与其他命令行工具如grep,awk,jq结合使用形成强大的分析管道。2.2 与tcpdump、tshark的定位差异很多人会问有了tcpdump为什么还需要wiremonitor这是一个很好的问题。它们确实有重叠但侧重点不同。tcpdump它是“老牌劲旅”功能极其强大和底层是网络诊断的必备工具。它的输出更偏向于原始和简洁高级的展示和过滤需要搭配复杂的命令行参数。它的强项在于 raw power 和无处不在的可用性。tshark它是Wireshark的命令行版本继承了Wireshark强大的协议解析能力。你可以用它做非常深入和具体的协议分析。但相对的它更“重”参数体系非常庞大输出信息也可能非常详细。wiremonitor它定位在两者之间。它比tcpdump提供了更友好、更结构化的默认输出例如更容易阅读的TCP标志位表示并且天生支持像JSON这样的结构化输出格式便于程序化处理。同时它又比tshark更轻量启动更快命令行参数更直观专注于“监控”和“实时流式输出”这个场景。你可以把它看作一个为现代命令行工作流优化的、增强版的tcpdump。简单来说当你需要快速看一眼某个端口的流量概况或者想以结构化格式持续收集特定流量时wiremonitor往往是最顺手的那把工具。3. 从零开始安装与快速上手3.1 多种安装方式详解wiremonitor的安装非常灵活你可以根据自身环境选择最合适的一种。方式一使用Go工具链从源码安装推荐给开发者这是最直接的方式前提是你的机器上已经安装了Go1.16版本。go install github.com/psandis/wiremonitorlatest安装完成后二进制文件会出现在你的$GOPATH/bin默认为~/go/bin目录下。请确保该目录在你的系统PATH环境变量中。这种方式能让你总是获得最新的特性。方式二下载预编译的二进制文件对于不想安装Go环境的用户项目GitHub的Release页面通常提供了针对常见平台Linux, macOS, Windows的预编译二进制文件。这是最快捷的部署方式尤其适合在生产服务器上使用。访问https://github.com/psandis/wiremonitor/releases找到最新版本下载对应你系统架构如wiremonitor_linux_amd64的文件。赋予可执行权限并移动到系统路径chmod x wiremonitor_linux_amd64 sudo mv wiremonitor_linux_amd64 /usr/local/bin/wiremonitor方式三通过包管理器安装在某些Linux发行版或macOS的Homebrew中可能已经有社区维护的包。例如在macOS上你可以尝试brew install wiremonitor不过这种方式可能不是最新版本请以官方仓库信息为准。注意无论哪种安装方式wiremonitor在运行时都需要系统具备捕获网络数据包的能力。在Linux上这通常意味着需要libpcap库并且运行时需要CAP_NET_RAW能力或直接以root权限运行。通过包管理器安装时依赖可能会自动解决。手动安装二进制文件时请确保系统已安装libpcap例如在Ubuntu上需要sudo apt install libpcap-dev。3.2 第一个命令监控所有HTTP流量安装成功后让我们立刻来感受一下它的威力。一个最常用的场景是监控HTTP流量。假设我们想看看本机80和443端口上的所有TCP流量即HTTP和HTTPS。首先你需要使用管理员权限因为抓包需要访问原始网络套接字sudo wiremonitor -i any -f “tcp port 80 or tcp port 443”让我们拆解这个命令sudo以超级用户权限运行。-i any指定监听的网络接口。“any”是一个特殊标识表示监听所有活跃的网络接口。你也可以指定具体的接口名如-i eth0或-i en0macOS的无线网卡。-f “tcp port 80 or tcp port 443”这是过滤表达式遵循标准的BPFBerkeley Packet Filter语法。它告诉wiremonitor只捕获目标端口或源端口是80HTTP或443HTTPS的TCP数据包。执行命令后你的终端会开始滚动输出捕获到的每一个匹配的数据包信息。默认的输出格式是易于阅读的文本包含了时间戳、源IP:端口、目标IP:端口、协议、TCP标志位、数据包长度等核心信息。你会立即看到浏览器访问网页、curl命令等产生的网络请求和响应。4. 核心功能深度解析与实战应用4.1 强大的过滤表达式BPF语法实战过滤是网络监控工具的灵魂。wiremonitor完全支持标准的BPF语法这让你可以精确地定位你感兴趣的流量。基础过滤host 192.168.1.100捕获所有与指定IP地址作为源或目标相关的流量。net 192.168.1.0/24捕获整个子网的流量。port 8080捕获端口为8080源或目标的流量。tcp,udp,icmp按协议过滤。高级组合过滤监控特定主机间的HTTP流量sudo wiremonitor -i any -f “host 192.168.1.5 and host 93.184.216.34 and tcp port 80”。这可以帮你分析你的机器与某个特定外网服务器之间的HTTP通信。排除干扰流量sudo wiremonitor -i any -f “tcp and not port 22”。监控所有TCP流量但排除SSH端口22的流量避免自己的操作干扰监控输出。抓取特定网络段的所有DNS查询sudo wiremonitor -i any -f “udp port 53 and net 192.168.1.0/24”。DNS通常使用UDP 53端口。基于内容的过滤需要更深入的数据包检查BPF还允许你对数据包 payload 的前若干字节进行过滤但这需要了解协议结构。例如抓取所有包含 “GET” 字符串的TCP数据包通常是HTTP请求的开始sudo wiremonitor -i any -f ‘tcp port 80 and tcp[((tcp[12:1] 0xf0) 2):4] 0x47455420’。这个表达式比较复杂它计算了TCP负载的偏移量并匹配”GET “的十六进制值。对于这种复杂过滤更常见的做法是先宽泛抓取然后用grep进行二次过滤。4.2 结构化输出JSON与管道协作wiremonitor的杀手锏之一是它的-json输出模式。这对于自动化处理和日志分析来说是革命性的。命令示例sudo wiremonitor -i any -f “tcp port 5432” -json这个命令会监控PostgreSQL数据库的默认端口5432并将每个数据包的信息以JSON格式输出。每一行都是一个独立的JSON对象包含了类似以下的信息{ “timestamp”: “2023-10-27T08:23:15.123456Z”, “src_ip”: “10.0.0.5”, “src_port”: 56789, “dst_ip”: “10.0.0.10”, “dst_port”: 5432, “protocol”: “TCP”, “flags”: “PA”, // PUSH, ACK标志 “length”: 128, “info”: “Seq1001 Ack2001 Win1024 Len60” }管道协作实战有了JSON行格式你可以轻松地使用jq这个强大的JSON命令行处理器进行实时分析。实时统计流量来源sudo wiremonitor -i any -f “tcp port 5432” -json | jq -r ‘.src_ip’ | sort | uniq -c | sort -nr这条命令会实时统计并排序哪个IP地址向你的5432端口发起的连接最多。提取特定字段并保存到文件sudo wiremonitor -i any -f “icmp” -json | jq ‘{time: .timestamp, from: .src_ip, to: .dst_ip}’ ping_log.jsonl这将所有ICMP包如ping请求的时间、源、目标信息提取出来保存为JSON Lines格式的文件便于后续用其他工具分析。复杂事件触发告警 你可以编写一个简单的Shell或Python脚本持续读取wiremonitor的JSON输出当发现特定模式如某个IP短时间内产生大量连接时触发邮件或Slack告警。4.3 性能调优与长时监控当需要长时间监控高流量网络时性能就变得关键。wiremonitor提供了一些参数来优化。缓冲区大小 (-b):-b 4将设置捕获缓冲区为4MB。增大缓冲区可以在流量突发时减少丢包的风险。如果你的监控发现有很多 “dropped by kernel” 的提示可以尝试增加这个值比如-b 1616MB。快照长度 (-s):-s 96设置每个数据包只捕获前96字节。对于只需要看包头IPTCP/UDP头一般是40-60字节的场景这能显著减少内存和CPU占用以及输出数据量。如果你不需要看应用层数据这是一个很好的优化选项。组合使用进行生产环境监控sudo wiremonitor -i eth0 -f “port 8080” -json -b 32 -s 128 /var/log/app_traffic.jsonl 21 这个命令监控eth0接口上8080端口的流量。输出JSON格式。设置32MB的大缓冲区。只捕获每个包的前128字节足够包含大多数请求/响应的头部。将标准输出和错误输出重定向到日志文件。最后放入后台运行适合长时间监控。实操心得对于生产环境务必使用-s限制捕获长度并确保日志目录有足够的磁盘空间。可以考虑配合logrotate工具对输出的日志文件进行轮转和压缩。5. 高级应用场景与排错实录5.1 场景一调试微服务间API调用在现代微服务架构中服务A调用服务B的API失败日志信息有限直接抓包往往是最快的定位方式。操作步骤定位目标假设服务B运行在10.0.1.20:3000上。精准抓包在服务A或服务B所在的主机上执行sudo wiremonitor -i any -f “host 10.0.1.20 and tcp port 3000” -json | jq ‘select(.length 100)’这里我们添加了一个jq过滤只显示负载长度大于100字节的数据包这样可以过滤掉大量的TCP握手SYN, ACK等控制包聚焦在真正的API请求和响应数据上。分析观察输出。如果能看到服务A发出去的TCP包[P](PSH) 标志但很久没有收到服务B的[P.](PSH-ACK) 响应可能是网络延迟或服务B处理超时。如果看到服务B返回了[R](RST) 标志则表明连接被对方强制重置可能是服务B进程崩溃或防火墙规则拦截。5.2 场景二分析数据库慢查询的网络因素应用服务器报告数据库查询慢是数据库本身慢还是网络延迟高用wiremonitor可以做个初步判断。操作步骤在应用服务器上抓取与数据库的通信sudo wiremonitor -i eth0 -f “tcp port 5432” -ttt注意这里用了-ttt参数。这个参数非常有用它打印的是相邻两个数据包之间的时间差以微秒为单位而不是绝对时间戳。解读-ttt输出你会看到类似这样的行00.000123 IP app-server.45234 db-server.postgresql: Flags [P.], seq 1:100, ack 1, win 229, length 99 00.152348 IP db-server.postgresql app-server.45234: Flags [.], ack 100, win 100, length 0 00.000045 IP db-server.postgresql app-server.45234: Flags [P.], seq 1:500, ack 100, win 100, length 499第一行是应用发送查询长度99。第二行开头的00.152348表示在收到查询后过了约152毫秒数据库才回了一个ACK确认包。这个时间就是网络往返时间RTT加上数据库首次处理时间。如果这个值持续很高比如几十上百毫秒那么网络延迟可能就是主要问题。第三行是数据库返回数据间隔很短。5.3 常见问题排查技巧实录即使工具好用也会遇到各种问题。下面是我在实践中总结的几个常见坑点。问题1运行wiremonitor提示 “No such device exists” 或 “You don‘t have permission to capture on that device”原因与排查接口名错误用ip link show(Linux) 或ifconfig(macOS) 确认正确的网络接口名称。常见的不是eth0可能是ens192,enp0s3等。权限不足抓包需要CAP_NET_RAW能力或root权限。最直接的方式就是用sudo。如果想让普通用户运行可以安装libcap工具并设置sudo setcap cap_net_raw,cap_net_admineip /usr/local/bin/wiremonitor。但生产环境慎用。Docker容器内容器内的网络命名空间是隔离的。-i any可能无效。你需要进入容器的网络命名空间抓包或者使用宿主机的工具抓取docker0网桥或对应veth pair的流量。问题2捕获到的流量很少或者明显遗漏原因与排查BPF过滤器太严格检查你的-f过滤表达式是否正确。可以先尝试不加-f参数看看是否有流量确认工具本身工作正常。缓冲区丢包在输出中寻找 “dropped by kernel” 或类似警告。如果存在使用-b参数增大捕获缓冲区大小。网卡混杂模式默认情况下网卡只接收发给本机的数据包。要捕获流经网卡的所有流量如监控交换机镜像端口需要开启混杂模式。wiremonitor似乎没有直接参数控制但底层libpcap默认可能会尝试开启。如果不行可以先用sudo ip link set eth0 promisc on手动开启。目标流量不经过此主机确保你抓包的主机确实是流量的必经之路。对于现代云环境的Overlay网络流量可能被封装需要在物理网关或宿主机上抓包。问题3JSON输出字段不全或格式意外原因与排查版本差异不同版本的wiremonitor其JSON输出的字段名和结构可能有细微变化。务必查阅你所使用版本的文档或wiremonitor --help。数据包类型对于非IP数据包如ARP或分片包某些IP层字段可能不存在。在使用jq处理时最好使用类似.src_ip? // “N/A”这样的操作符来提供默认值避免脚本因字段缺失而中断。编码问题如果输出到终端显示乱码可能是终端编码问题。确保你的终端和系统环境支持UTF-8。对于重定向到文件这通常不是问题。6. 性能考量与生产环境部署建议将wiremonitor用于生产环境监控需要谨慎规划。1. 资源消耗评估CPU持续的数据包捕获、解析和格式化输出尤其是JSON是CPU密集型操作。在高流量10Gbps环境下单个wiremonitor进程可能吃满一个核心。务必在测试环境评估。内存主要由-b指定的缓冲区大小决定。通常4-64MB足够。如果输出直接写入管道而不做缓冲内存占用很小。磁盘I/O如果将原始输出特别是未用-s截断时直接写入磁盘可能会产生巨大的日志文件成为I/O瓶颈。强烈建议配合-s参数并考虑输出到高性能存储或先进行聚合过滤再落盘。2. 部署模式建议边车Sidecar模式在Kubernetes中可以作为一个Sidecar容器与应用容器部署在同一个Pod里使用hostNetwork: true共享网络命名空间来监控该Pod的网络流量。这样监控逻辑与应用解耦。节点代理模式在每台物理机或虚拟机上部署一个wiremonitor实例监控主网络接口如eth0过滤出关键业务流量如特定服务端口。输出可以发送到中央的日志聚合系统如Fluentd, Logstash或消息队列如Kafka。按需诊断模式不作为常驻服务仅在需要排查问题时通过运维平台或SSH临时在目标机器上执行抓包命令并将结果拉回分析。这对性能影响最小。3. 安全与合规性提醒重要警告网络抓包会捕获明文传输的数据可能包含敏感信息如密码、API密钥、个人数据等。权限控制严格限制有权限执行wiremonitor的用户范围。数据脱敏如果日志需要留存或发送到第三方系统务必在管道中增加脱敏环节例如使用sed或自定义脚本替换掉密码字段。合规性确保你的监控行为符合公司安全政策和相关法律法规的要求。通常只应在自己的业务系统或获得明确授权的范围内进行抓包分析。wiremonitor就像一把锋利的手术刀在网络诊断这个领域它精准、轻便、高效。它可能不会替代tcpdump或Wireshark在你工具包中的地位但它绝对能在那些需要快速洞察、自动化处理或命令行集成的场景下成为你最得力的助手。掌握它意味着你多了一种直接与网络流量对话的能力。下次再遇到棘手的网络问题不妨先打开终端让wiremonitor告诉你线缆上究竟在流淌着什么。

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…