【发布时间】:2012-03-09 05:51:13
【问题描述】:
我有一个指向套接字的文件描述符(下面的示例代码)。
exec 3<>/dev/tcp/localhost/9999
echo -e "Some Command\n" >&3
有时套接字会关闭并需要重新打开(重新启动服务器)。
如何测试套接字(本例中为 fd #3)是否可写?
无论套接字是否已经关闭,回显都会成功。
【问题讨论】:
-
您想知道它是否可写 或是否已关闭?第一个是权限问题,后者是状态问题。这些只是稍微相关(有效的文件模式会受到打开标志的影响,如果你愿意,可以将其称为 state)
-
@sehe 这不是权限问题。他在谈论套接字。没有与套接字关联的写权限。如果您可以打开套接字,则可以读取和写入。
-
特别是如果它已关闭。我知道它是可写的,我可以在正常情况下打开套接字,但是当我失去连接时(网络问题、脚本运行时服务器关闭等)我需要尝试重新打开它才能继续。跨度>