Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 是否有任何命令行工具来编写tcp套接字脚本_Unix_Tcp_Command Line Interface_Sh_Mpd - Fatal编程技术网

Unix 是否有任何命令行工具来编写tcp套接字脚本

Unix 是否有任何命令行工具来编写tcp套接字脚本,unix,tcp,command-line-interface,sh,mpd,Unix,Tcp,Command Line Interface,Sh,Mpd,我在构建一个供我私人使用的MPD客户端时遇到了以下问题 我需要(从/bin/sh脚本): 通过tcp向服务器发送命令 在自己的线路上等待OK 向服务器发送close命令以清除连接 是否有任何命令行工具可以用来实现这一点(我可以用C/Java/Python编写代码,但不希望引入依赖关系) 我尝试过netcat,但无法执行步骤2,这导致我丢失了来自1的部分响应,因为在发送输出之前连接已关闭 我试过但一直不起作用的是 printf 'command_list_ok_begin\nnext\nstatu

我在构建一个供我私人使用的MPD客户端时遇到了以下问题

我需要(从/bin/sh脚本):

  • 通过tcp向服务器发送命令
  • 在自己的线路上等待OK
  • 向服务器发送close命令以清除连接
  • 是否有任何命令行工具可以用来实现这一点(我可以用C/Java/Python编写代码,但不希望引入依赖关系)

    我尝试过netcat,但无法执行步骤2,这导致我丢失了来自1的部分响应,因为在发送输出之前连接已关闭

    我试过但一直不起作用的是

    printf 'command_list_ok_begin\nnext\nstatus\nplaylistinfo\ncommand_list_end\nclose\n'|nc -w 5 $mpdhost 6600 # 
    

    你实际使用的是什么外壳?POSIX shell没有套接字功能,因此您已经对非标准工具(
    netcat
    )有了外部依赖,因此您最好切换到另一种语言。如果您可以假设一个特定的shell,如
    bash
    zsh
    ,那么在shell本身中就有通过TCP进行通信的选项。在不改变环境的情况下,它是dash