c++ - 基本的 linux C++ 网络 : connection refused, 但是没有出现错误

标签 c++ linux networking connection

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

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

我已尝试命令 telnet 127.0.0.1 6666 并得到连接被拒绝,但我的服务器仍在运行。

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

这是我的 source code on pastebin .

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

最佳答案

  1. 请注意,您的 incoming_addr 被声明为指针,因此您的 sizeof 返回指针的大小。尝试使用 sizeof(struct sockaddr_storage)

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

关于c++ - 基本的 linux C++ 网络 : connection refused, 但是没有出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13810200/

相关文章:

linux - 以非阻塞方式从 perl 调用 bash 脚本并获取这个新后台进程的 pid

linux - 如何从任何源自其他 Bash 脚本的目录 Bash 脚本执行(不使用路径变量)

java - 如何在 mac 上从 java 读取和写入原始 ip 数据包?

java - 如何解析通过 TCP 收到的损坏消息

c++ - cppreference 的 result_of 示例中不必要的 std::forward 使用

c++ - 如何在创建新对象时使用 = 运算符?

ruby-on-rails - Docker - 无法转发交互式 shell 的端口

c++ - 调用函数时出现段错误

c++ - 我如何在线程之间进行通信

java - 将 Java 日期转换为 MySql DateTime