我正在编写 Linux 上的 C++ 网络服务器原型(prototype)。我已经获得套接字文件描述符,将其绑定(bind)到端口 6666 上的 127.0.0.1,用监听标记套接字并调用接受。程序运行直到接受没有任何错误,然后等待。
nestat --all
中仍然没有关于我的套接字的记录。
我已尝试命令 telnet 127.0.0.1 6666
并得到连接被拒绝
,但我的服务器仍在运行。
我不认为这是由防火墙引起的,因为在互联网上找到的示例有效。我认为错误处理可能有一些错误,我对 C++ 还不是很熟悉。
这是我的 source code on pastebin .
感谢您的时间和精力! :)
最佳答案
请注意,您的
incoming_addr
被声明为指针,因此您的sizeof
返回指针的大小。尝试使用sizeof(struct sockaddr_storage)
。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/