答案1
打开一个套接字会打开一个插座,这就是您在输出 ( socket:[5474494]
) 中看到的列为文件描述符 3 的内容。其他三个文件描述符是标准输入、输出和错误描述符,默认情况下为任何进程打开。在您的情况下,这些指向程序运行的终端,这就是当您写入文件描述符时“surni”显示在那里的原因。
要写入套接字,您需要使用适当的机制,例如netcat
在另一个方向:
echo Hello | nc localhost 9999
或者,如果您使用的是 Bash:
echo Hello > /dev/tcp/localhost/9999
但是,您似乎已经使用另一个端口建立了与端口 9999 的连接netcat
,因此这实际上不适用于您的情况。您需要使用已建立的连接...
如果您期望长时间运行nc
为其他进程提供输入套接字的方式,则需要进行设置例如使用 FIFO:
mkfifo socket-input
nc localhost 9999 < socket-input
echo Hello > socket-input