在Ubuntu上运行c ++。 我用这种方式打开socket:
socket(AF_PACKET, SOCK_RAW, IPPROTO_RAW))
在使用结束时我需要做什么? 只要程序运行,就会使用一些套接字,我需要检查一下吗?看看socket是否仍然存在?
答案 0 :(得分:10)
套接字存在,直到您在其文件描述符上调用close
。由于你有一个原始的IP套接字,所以没有“活着”的概念。只需在使用完毕后关闭它。
答案 1 :(得分:8)
正如其docs / man页面所说,socket()返回一个打开的文件描述符,如果失败则返回-1。这意味着您必须关闭它,就像关闭任何其他文件描述符一样:
close(sockfd);