带有telnet的Bash脚本;“外部主机关闭的连接”;
我有一个bash脚本,应该连接到我的Sky+HD框并暂停它。这是box支持的一项服务,因为它与iPhone/iPad应用程序的协议相同 有没有什么明显的原因可以解释为什么它不能保持连接带有telnet的Bash脚本;“外部主机关闭的连接”;,bash,telnet,Bash,Telnet,我有一个bash脚本,应该连接到我的Sky+HD框并暂停它。这是box支持的一项服务,因为它与iPhone/iPad应用程序的协议相同 有没有什么明显的原因可以解释为什么它不能保持连接 (echo 'POST /SkyPlay2 HTTP/1.1 SOAPACTION: "urn:schemas-nds-com:service:SkyPlay:2#SetAVTransportURI" Content-Type: text/xml; charset=utf-8 Content-Length
(echo 'POST /SkyPlay2 HTTP/1.1
SOAPACTION: "urn:schemas-nds-com:service:SkyPlay:2#SetAVTransportURI"
Content-Type: text/xml; charset=utf-8
Content-Length: 399
<?xml version="1.0" encoding="utf-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:SetAVTransportURI xmlns:u="urn:schemas-nds-com:service:SkyPlay:2"><InstanceID>0</InstanceID><CurrentURI>xsi://'$line'</CurrentURI><CurrentURIMetaData>NOT_IMPLEMENTED</CurrentURIMetaData></u:SetAVTransportURI></s:Body></s:Envelope>') | telnet 192.168.1.82 49153
(echo'POST/SkyPlay2 HTTP/1.1
SOAPACTION:“urn:com:service:SkyPlay:2#SetAVTransportURI”
内容类型:text/xml;字符集=utf-8
内容长度:399
0xsi://“$line”未实现”)| telnet 192.168.1.82 49153
您的框可能有访问限制,因此不允许从正在运行脚本的计算机进行连接
作为一般性建议:
$line
,以防止不愉快的事情发生,如:echo'foo'$list“'bar'
(注意双引号)李>
nc
(netcat):echo'stuff'| nc-n 192.168.1.82 49153
,而不是telnet
,这意味着更多的交互使用;如果您的telnet
在发送您的数据之前,试图保持智能并协商telnet协议特定参数,这可能有助于解决连接问题李>
echo
,发送数据,因此不需要在子shell中运行它,因此不需要括号(
)
李>
<> LI>当你有多行输出时,考虑使用<代码>猫,非常感谢你的帮助!除了第1点,我完全理解,我应该引用什么我没有引用的?在你粘贴的代码中,最后一行包含
xsi://'$line'
-正确的形式是xsi://'$line'
nc-n是问题所在,看起来Sky+HD框不接受telnet(尽管它过去是)