我尝试使用xinetd远程运行一个命令(tracejob)。当我通过telnet连接时,一切正常。不幸的是,我编写的客户机似乎没有从服务器接收数据。代码看起来像:
服务器:
import sys
import commands
def main():
tjinput = sys.stdin.readline().strip()
(ret, out) = commands.getstatusoutput('/usr/bin/tracejob '+tjinput)
print out
sys.stdout.flush()
if __name__ == "__main__":
main()
客户:
^{pr2}$客户端进程停止在短袜收银机(1024)线路。我一辈子也说不清为什么短袜收银机没有从套接字读取输出。可能是编码问题?如果有帮助,xinetd.d文件如下所示:
service tracejob
{
flags = IPv4
disable = no
socket_type = stream
wait = no
user = root
group = root
server = /usr/local/bin/tracejob_xinetd.py
port = 12345
type = UNLISTED
}
tracejob在哪_xinetd.py公司是上面描述的服务器。在
有什么提示吗?提前谢谢。在
您有一个死锁的情况:客户机发送一个不完整的行并等待服务器发送一些内容,服务器在发送回复之前等待行完成或EOF。在
现在你有两种方法可以继续:
\n
附加到要发送的字符串。在sock.shutdown(socket.SHUT_WR)
在客户端“半关闭”套接字。在相关问题 更多 >
编程相关推荐