如何关闭套接字

时间:2012-08-17 12:52:05

标签: c++ sockets

在Ubuntu上运行c ++。 我用这种方式打开socket:

socket(AF_PACKET, SOCK_RAW, IPPROTO_RAW))

在使用结束时我需要做什么? 只要程序运行,就会使用一些套接字,我需要检查一下吗?看看socket是否仍然存在?

2 个答案:

答案 0 :(得分:10)

套接字存在,直到您在其文件描述符上调用close。由于你有一个原始的IP套接字,所以没有“活着”的概念。只需在使用完毕后关闭它。

答案 1 :(得分:8)

正如其docs / man页面所说,socket()返回一个打开的文件描述符,如果失败则返回-1。这意味着您必须关闭它,就像关闭任何其他文件描述符一样:

close(sockfd);