ひろえさんの NPHスクリプトについては、スクリプトを送っていただきましたが、AN HTTPD の動作とスクリプト自体の両方に問題があることがわかりました。
(1)AN HTTPD 側の問題は、nph- を正しく NPH(Non-Parsed-Header)として扱っていない
(2)nph-push.pl.cgi の問題は、stat を使用、バイナリファイル入出力で binmode を使っていない
という感じです。
が、まずは、AN HTTPD の方を解決しておかないといけないので、少々お待ち下さい。
ひろえさん、
CGIから出力が何もないという感じですが、ちょっとわからないので、nph-push.pl.cgi を載せてもらった方がよさそうです。
大きいようでしたら、メールででも。
中田さん、すばやいお返事ありがとうございます。
CGI出力に検査、nphを省いて実行してみました。
ブラウザ(IE5)にエラー何も表示されません。
ログとエラーログは以下の通りです。
192.168.0.5 - - [27/Oct/1999:21:38:35 +0900] "GET /cgi-test/chap09/push-pl2.html HTTP/1.1" 200 1290
192.168.0.5 - - [27/Oct/1999:21:38:35 +0900] "GET /cgi-test/chap09/push.pl.cgi HTTP/1.1" 200 2799
Wed Oct 27 21:38:40 1999 Warning: Recv() received 0 bytes in ClientRead() for Thread 1 (ID = -1673897), nLoop=1
お手数をおかけしますがよろしくお願いします。
私からの返信は明日になりますがご了承ください。
ひろえさんに追記。
「CGI出力に検査」の場合は、"nph-"を省いて push.pl.cgi でやってみる方がいいかもしれません。
ひろえさん、
nph はここのところ確認していないので一抹の不安はありますがいずれにしろ エラー500 なので、まずはオプション/一般の「CGI出力を検査」にチェックを入れて再度実行してみて下さい。そしてブラウザに表示されたエラーメッセージをお知らせ下さい。
はじめまして。
解説書のサーバプッシュアニメーションサンプルを動かしましたが、以下のエラーが出力されてうまく表示されません。
Wed Oct 27 19:40:48 1999 Warning: Recv() received 0 bytes in ClientRead() for Thread 0 (ID = -1626461), nLoop=1
Wed Oct 27 19:40:51 1999 Client Abort 1 (or SOCKET_ERROR) detected during CGI/SSI process with thread 1 (ID=-1617149) errorCode=10054
Wed Oct 27 19:40:51 1999 Error Response 500 Thread 1(ID= -1617149) for "/cgi-test/chap09/nph-push.pl.cgi"
Wed Oct 27 19:40:51 1999 Error: Can't send error response header (500) for Thread 1 (ID = -1617149) with errorcode 10054 for socket 184
Wed Oct 27 19:40:51 1999 Warning: connection reset during Recv() in ClientRead() for Thread 1 (ID = -1617149) with WSAECONNRESET
ログは以下のようになっています。
192.168.0.5 - - [27/Oct/1999:19:40:48 +0900] "GET /cgi-test/chap09/push-pl.html HTTP/1.1" 304 0
192.168.0.5 - - [27/Oct/1999:19:40:48 +0900] "GET /cgi-test/chap09/nph-push.pl.cgi HTTP/1.1" 500 294
CGIのヘッダ情報は以下の通りです。
$httpokay = "HTTP/1.0 200 OK";
$ct = "Content-type:";
$cl = "Content-length:";
$boundary = "foo";
$ctmixed = "$ct multipart/x-mixed-replace; boundary=$boundary";
$ctgif = "$ct image/gif";
WIN98、Perl for Win32を使用しています。
必要であればCGIの全コードを載せます。
どなたかよろしくお願いします。