gpt4 book ai didi

c - 数据包转发到目的地,但应用程序未收到

转载 作者:太空宇宙 更新时间:2023-11-04 08:57:02 25 4
gpt4 key购买 nike

我正在尝试在我的机器上运行一个简单的客户端-服务器程序。如果客户端和服务器都在同一个系统上,它工作正常。但是如果客户端在另一个系统上而服务器在我的系统上运行,它就不起作用。它以相反的方式工作。当我执行 netstat 命令时,它从客户端显示 SYN_SENT,但服务器仍显示 LISTENING。 Wireshark 确认它收到了来自客户端的消息,但消息仍然没有到达服务器。

我在 Windows XP 上运行。

这是客户端的netstat

TCP    si-rohitp:5002         10.221.40.62:5003      SYN_SENT

这是服务器端的网络统计

TCP    127.0.0.1:1045         0.0.0.0:0              LISTENING
TCP 127.0.0.1:5152 0.0.0.0:0 LISTENING

最佳答案

您的服务器程序只监听本地主机。在进行套接字编程时,您的程序不仅会列出一个特殊的端口,还会监听一个特定的 IP 地址。如果程序监听本地主机,将导致我的程序永远无法连接到计算机外部。重写服务器程序中的代码以监听其 IP 地址。您可以借助网络功能查询当前运行服务器程序的计算机的IP地址。

如果您的程序不仅要使用套接字进行计算机内部通信,那么您应该始终绑定(bind)到真实的 IP 地址。如果您的程序只打算使用套接字进行内部通信,您应该始终绑定(bind)到本地主机,因为安全足迹较低。

如果您无法访问服务器程序的源代码,并且没有办法自定义服务器程序的行为,那您就完蛋了。

关于c - 数据包转发到目的地,但应用程序未收到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16412928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com