簡體   English   中英

Perl在Windows上通過inetd讀取STDIN錯誤“錯誤的文件描述符”

[英]Perl reading STDIN via inetd on windows error “Bad file descriptor”

我已經在Windows上通過Cygwin配置了inetd並作為服務啟動。

劇本:

use strict;
use warnings;

use IO::Socket;
use IO::Handle;
use IO::File;
use IO::Select;

print "input something\n";
STDOUT-> autoflush (1);

my $data = <STDIN> || die "(Failed reading STDIN) $^E (Error) $! (End)\n";

在命令行上:

telnet localhost <port>

它立即失敗並顯示:

(Failed reading STDIN) The parameter is incorrect (Error) Bad file descriptor (End)

我一直在搜索整個Google,但找不到解決方案。 有人可以給它開些燈嗎?

不勝感激!


更新:感謝您的答復,我知道IO :: Socket並不構成Telent服務器,但是通過設置cygwin inetd,它成為一個。 Telnet到Works端口,並調用inetd.conf中的腳本。 STDOUT也可以工作。 唯一不起作用的是STDIN。 我有一個供人們提交命令的工具,該工具將端口作為STDIN發送到inetd服務器。 相同的機制適用於所有unix,例如平台,solaris,hp,linux,aix。 只是不在窗戶上...

我不明白的一件事是,為什么STDIN是關閉的,我們是否有某種調試方法? 提前致謝!

Cygwin和從ClearCase VOB調用Perl似乎是一個錯誤。 供以后參考:我在Cygwin中編譯了perl,並從inetd腳本中調用了它。 據我所知,一切工作正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM