【问题标题】:Basic linux C++ networking: connection refused, however no error raised基本 linux C++ 网络:连接被拒绝,但没有引发错误
【发布时间】:2012-12-10 22:15:12
【问题描述】:

我正在编写 Linux 上的 C++ 网络服务器原型。我已经获得了套接字文件描述符,将其绑定到端口 6666 上的 127.0.0.1,用监听标记套接字并调用接受。程序运行直到接受没有任何错误,然后等待。

nestat --all 中仍然没有关于我的套接字的记录。

我尝试了命令telnet 127.0.0.1 6666 并得到connection refused,但我的服务器仍在运行。

我不认为它是由防火墙引起的,因为在互联网上找到的示例有效。我认为错误处理可能有一些错误,我对 C++ 还不是很熟悉。

这是我的source code on pastebin

感谢您的时间和精力! :)

【问题讨论】:

    标签: c++ linux networking connection


    【解决方案1】:
    1. 请注意,您的 incoming_addr 被声明为指针,因此您的 sizeof 返回指针的大小。试试sizeof(struct sockaddr_storage)

    2. getAddress 应该收到 const char *address 而不是 const char address。您真的想传递整个地址,而不仅仅是第一个字符。这也需要你把address中的&去掉inet_addr(&address)中的&,并将函数调用为getAddress(addr, SERVER_PORT)

    【讨论】:

    • 非常感谢!正是那些指针的错误! :)。它现在按预期工作。
    猜你喜欢
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    相关资源
    最近更新 更多