gpt4 book ai didi

c - Beej 的服务器客户端套接字示例在 cygwin 中不起作用

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

我正在尝试构建一个基本的客户端服务器,因此我可以对其进行修改,然后在 IDA 中进行分析。有人指出 Beej 的套接字编程示例是权威指南:

http://beej.us/guide/bgnet/output/html/multipage/clientserver.html

我通常使用 Cygwin 作为我的编程等工作环境。当我编译这些程序时,服务器程序在 Cygwin 下无法运行,但客户端程序可以运行。

当完全相同的服务器代码在 linux 下编译和运行时,没有问题,运行良好。

我让其他人以同样的方式尝试,他们得到了相同的结果。尝试连接到服务器时,客户端关闭并显示:

client: connect: connection timed out
client: failed to connect

并且数据包捕获显示 TCP SYN 数据包已发送到服务器,但它从未响应。

任何人都可以向我解释为什么这在 Cygwin 下失败的原因,并提出解决方案吗?

最佳答案

我发现 Beej 给出的程序在服务器上默认为 IPv6。解决方案是使用它的 IPv6 地址在客户端中寻址服务器地址,或者将服务器改为使用 IPv4。这可以通过从

更改服务器代码来实现
hints.ai_family = AF_UNSPEC;

hints.ai_family = AF_INET;

希望这对某人有帮助。

关于c - Beej 的服务器客户端套接字示例在 cygwin 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18772176/

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