首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在哪里可以找到套接字文件?(我想拆开它,然后删除它.)

在哪里可以找到套接字文件?(我想拆开它,然后删除它.)
EN

Unix & Linux用户
提问于 2020-11-25 08:49:57
回答 1查看 2.6K关注 0票数 0

我正在为一个使用UDP套接字的程序进行调试。该程序创建一个套接字,但在那之后,由于其他一些问题,程序会被卡住,我无法正确地杀死它。因此,我关闭命令shell,进程进入“失效”状态。我猜在这个过程中没有释放套接字,因为下次我运行这个程序时,在套接字创建期间,它会说'create : Address已经在使用‘。当然,如果我重新启动计算机(实际上是一个小板,安装了ubuntu16.04),我可以再次启动这个实验。

我知道linux中的所有东西都是文件,所以应该有套接字文件。我在这里读到(https://stackoverflow.com/questions/34873151/how-can-i-delete-a-unix-domain-socket-file-when-i-exit-my-application),我可以解除套接字的链接(使用命令unlink)并删除它。在哪里可以找到套接字文件,如何获得关于套接字文件的信息(在我找到它之后)?

EN

回答 1

Unix & Linux用户

发布于 2020-11-25 09:24:11

为UDP (和TCP)套接字设置一个名为"REUSEADDR“(或"SO_REUSEADDR”等)的Google。以及REUSEPORT (查看差异)。

如果在应用程序中创建UDP套接字时使用"REUSEADDR“,则在绑定到端口时将设置SO_REUSEADDR标志。这意味着多个线程或进程可以绑定到相同的地址:端口,没有错误(只要它们都设置了标志)。请注意,只有最后一个绑定进程才会接收流量,并从前面的侦听器(在您的例子中是死应用程序)获得控制权。

在设计服务器应用程序时,最好设置REUSEADDR标志,以便快速重新启动服务,否则您将等待绑定成功。这将允许您重新启动您的应用程序,而不必对套接字文件进行黑客攻击,这些文件应该留给系统来管理。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/621467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档