关闭套接字及其资源

时间:2014-12-01 13:13:50

标签: c++ eclipse sockets

我正在使用close()函数关闭套接字。在我看到它没有工作(通过调试)后,我也尝试了shutdown()函数。但我仍然看到套接字值没有改变。 任何人都告诉我套接字不能关闭的原因是什么是接近的套接字的价值。

谢谢!

2 个答案:

答案 0 :(得分:0)

close函数关闭套接字。该端口可能仍然被尚未关闭的连接占用。如果这是一个问题,请查看SO_REUSEPORT选项。

答案 1 :(得分:0)

假设您正在使用POSIX功能

#include <unistd.h>
int close(int fd);

你做了类似的事情:

int socket_handler;
// initialize everything
// ...
close(socket_handler);

然后仔细查看,您会看到close函数没有(不能)更改socket_handler变量的值。

您必须通过其他方式检查套接字是否已关闭 - 例如@DavidSchwartz已经回答。