You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows10下如何验证gRPC发送至localhost指定端口的消息是否到达?

在Windows10上验证gRPC消息是否送达localhost:8000的方法

1. 抓包工具分析(Wireshark)

  • 打开Wireshark,选择本地回环接口Loopback: lo0
  • 设置过滤规则:tcp port 8000,仅显示8000端口的流量
  • 运行集成测试后,观察抓包结果:
    • 确认存在SYN/SYN-ACK/ACK三次握手包,证明连接已建立
    • 查找包含gRPC消息的数据包(gRPC基于HTTP/2,通常带有PRI * HTTP/2.0头帧或后续DATA帧)
    • 右键数据包选择「Follow -> TCP Stream」,查看完整交互内容,确认文本消息是否在其中

2. 修改客户端代码添加接收日志

在gRPC客户端的消息处理逻辑中添加日志输出,直接验证接收情况:

// 以同步Stub调用为例
auto response = stub->SendMessage(&context, request);
if (response.ok()) {
    // 控制台打印接收到的消息
    std::cout << "已收到消息:" << response->message() << std::endl;
    // 写入日志文件持久化记录
    std::ofstream log_file("client_receive.log", std::ios::app);
    log_file << "[" << std::chrono::system_clock::now() << "] 收到消息:" << response->message() << std::endl;
}

运行测试后,查看控制台输出或日志文件,确认消息是否被正确接收。

3. 用netstat确认端口连接状态

打开命令提示符或PowerShell,执行命令:

netstat -ano | findstr ":8000"

查看输出结果:

  • 若存在ESTABLISHED状态的条目,说明测试程序与客户端已建立TCP连接
  • 可通过PID匹配对应的进程,确认是你的测试程序和目标客户端进程

4. 启用gRPC内置日志

在客户端代码中开启gRPC详细日志(编译时需启用gRPC日志功能):

// 程序启动时添加
gpr_set_log_verbosity(GPR_LOG_SEVERITY_DEBUG);

运行客户端后,查看控制台输出的日志,其中会包含消息接收的详细流程,可直接确认消息是否被处理。

内容的提问来源于stack exchange,提问作者David Hovsepyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 23:15:34