0

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

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

我已经尝试过 commandtelnet 127.0.0.1 6666并得到了connection refused,但我的服务器仍在运行。

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

这是我在 pastebin 上的源代码

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

4

1 回答 1

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

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

于 2012-12-10T22:25:18.963 回答