• ベストアンサー

Operation now in progress (115)って何?

fsockopenで、以下のように記述して実行してみました。 $sock = @fsockopen("ssl://xxx.xxx.jp", 443, $errno, $errstr, 30); if (!$sock) die("$errstr ($errno)\n"); その結果、 Operation now in progress (115) と返ってきます。 いろいろ調べてみたのですが、意味がわかりません。 ので、対応が出来ません。 わかる方、いらっしゃいますか?

  • PHP
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

初めて見たので調べてみました。 すでにブロッキング手続きが実行されている なんて意味らしいですね。 2回目以降のfsockopenだったりするとか? $sockをfclose($sock);する前にもう一度読んだりするとそうなるのかも知れません。 推測ですけど。

関連するQ&A

  • fsockopenで下層ページの内容を取得するには

    わたくしphp歴4ヶ月のものです。 fsockopenで下層ページの内容を取得するにはどうすればよいのでしょうか。説明がうまくできないので例を書きます。 business.yahoo.co.jp/prod/store を指定するとエラーが出ます。 例1) $fp=fsockopen("business.yahoo.co.jp/prod/store", 80, $errno, $errstr, 30); if(!$fp) { echo "$errstr ($errno)<br>\n"; } else{ fputs($fp, "GET / HTTP/1.0\r\n\r\n"); while(!feof($fp)) { echo fgets ($fp,600); } fclose($fp); } business.yahoo.co.jpを指定するとエラーが出ません。 例2) $fp=fsockopen("business.yahoo.co.jp", 80, $errno, $errstr, 30); if(!$fp) { echo "$errstr ($errno)<br>\n"; } else{ fputs($fp, "GET / HTTP/1.0\r\n\r\n"); while(!feof($fp)) { echo fgets ($fp,600); } fclose($fp); } 下層ディレクトリのページはどのように指定すればよいのでしょうか。/←スラッシュに問題があるのでしょうか。 その場合のエラーの内容は下記です。 Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/mero/public_html/test.php on line 23 Warning: fsockopen(): unable to connect to business.yahoo.co.jp/prod/store:80 in /home/mero/public_html/test.php on line 23 No such file or directory (2) 基本的な質問でたいへん恐縮ですが、 ご指導お願いいたします!

    • ベストアンサー
    • PHP
  • fsockopenを使った証明書付きのSSL通信

    お世話になっております。 fsockopenを使って、証明書付きのSSL通信をして表示内容を取得したいのです。 いろいろ見て回って、下記のようなソースを作りました。 ------------------------------------------------------------------------ $context = stream_context_create(); stream_context_set_option($context, 'ssl', 'local_cert', './client.pem'); stream_context_set_option($context, 'ssl', 'cafile', './ca.pem'); $host = "aaa.bbb.ne.jp"; $fp = fsockopen("ssl://{$host}", 443, $errno, $errstr, 10, $context); ------------------------------------------------------------------------ すると、 Warning: fsockopen() expects at most 5 parameters, 6 given と怒られます。fsockopenに6つ目のパラメータは渡せないってことですよね? 仕方がないので、 $contextをはずしてみると、当然証明ができないので怒られます。 Warning: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:14094410:SSL routines:func(148):reason(1040) in xxxxxxx~ Warning: fsockopen(): Failed to enable crypto in xxxxxxx~ Warning: fsockopen(): unable to connect to ssl://aaa.bbb.ne.jp:443 (Unknown error) in xxxxxxx~ まる一日解決方法を探し続けているのですが、だめです。 漠然とした内容で申し訳ありませんが、どなたかご教授願えませんでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • POP before SMTPはどうやって?

    PHPを今勉強しています。 mail関数で掲示板の内容をPOSTで送ったときにメールしようとしていますが、使用しているプロバイダのSMTPがPOP認証を必要としています。 考えとしては fsockopenでpopにアクセスしてユーザー名とパスワードを入れて接続はそのままでSMTPでメールを送る。 送ったあとに接続をCloseしようと考えていますがうまくいきません。netstatでみるとPOPにはEstablishedとなっていますので接続できていると思いますが、ユーザー認証ができているかわかりません。このような方法でPOP Before SMTPは実装できますでしょうか。 コードはこのようにしています。(一部変えています) $fp = fsockopen ("popaddress.com", 110, $errno, $errstr, 30); if (!$fp) { echo "Error msg in fsockopen is $errstr ($errno)<br>\n"; } else { fputs ($fp, "user hoge\r\n"); echo fgets ($fp,128); fputs ($fp, "pass hoge\r\n"); } mail($smtp, $msg);

    • ベストアンサー
    • PHP
  • 8080のサーバーへアクセス可能かチェック

    www.sample.com:8080という風に設定したwebサーバーがありますが ここにアクセスできるかをプログラム中でチェックしたいのですが 例えば10秒アクセスできないといったものですが $fp = fsockopen("www.sample.com", 8080, $errno, $errstr, 10); if (!$fp) { echo "ng<br />\n"; } else { echo "ok<br />\n"; } 以上では8080だとうまくチェックできません、なにかいい方法はないでしょうか?

    • ベストアンサー
    • PHP
  • PHPからPerl へのコンバート

    現在、PHPで作成したものをPerlへ変換しております。 Perlはあまりやった事がないので四苦八苦しております。 下記の処理をPerlへ変換する場合、どの様な記述になりますでしょうか? 精通している方、ご助言お願いいたします。 my $fp = fsockopen( $Host, "80", $ErrNo, $ErrStr, 10 ); if ( $fp ) { $out = "GET " . $Path . " HTTP/1.1\r\n"; $out.= "Host: " . $Host . "\r\n"; $out.= "Connection: Close\r\n\r\n"; fputs( $fp, $out ); while( !feof( $fp ) ) $ret .= fgets( $fp, 128 ); } fclose( $fp );

    • ベストアンサー
    • Perl
  • トランザクションが効かない

    PHPでMySQLをやっています。 異なる2つのテーブルに同時にinsertをしようと思い、transactionを使って 片方がエラーならどちらにもinsertしないこと期待したのですが、 どうも効いてないみたいなんです・・・ mysql_query("begin transaction;") or $errStr= mysql_errno() . ": " . mysql_error(). "\n"; $sqlstr = "INSERT INTO table1 (id, name) VALUES ("aaaa", "山田");"; mysql_query($sqlstr) or $errStr= mysql_errno() . ": " . mysql_error(). "\n"; $sqlstr = "INSERT INTO table2 (id, name) VALUES ("bbbb", "佐藤");"; mysql_query($sqlstr) or $errStr= mysql_errno() . ": " . mysql_error(). "\n"; mysql_query("commit transaction;") or $errStr= mysql_errno() . ": " . mysql_error(). "\n"; ※table1には既に「id:aaaa name:鈴木」が入っています を実行して重複エラー 「1062: Duplicate entry 'aaaa' for key 1 」 が出たのですが、table2には「id:bbbb name:佐藤」が入ってしまいます。 もちろんtable1には「id:aaaa name:山田」は入りません。 どうすればトランザクションが効くようになるのでしょうか?

    • ベストアンサー
    • MySQL
  • MacOSXでのネットワークプログラミング

    MacOSXでのネットワークプログラミング 現在、MacOSXでC言語を使用してネットワークプログラミングを勉強しています。 簡単なクライアントアプリケーションを作成して、サーバーに接続しようとするのですが、 connect関数のところで、エラーが発生して失敗してしまいます。 エラー関数を調べたところ、errno=13, 「Permission denied」がでています。 root権限で実行、ファイアウォールを無効にしても同じでした。 原因が分からないので、よろしくお願いします。 ◯サンプルソース int main() { struct sockaddr_in server; int sock, n; char buf[32]; sock = socket(AF_INET, SOCK_STREAM, 0); server.sin_family = AF_INET; server.sin_port = htons(80); server.sin_addr.s_addr = inet_addr("www.google.co.jp"); n = connect(sock, (struct sockaddr *) &server, sizeof (server)); if (n == -1) { printf("[ERROR](%d): %s\n", errno, strerror(errno)); } else { memset(buf, 0, sizeof (buf)); n = read(sock, buf, sizeof (buf)); printf("%d, %s\n", n, buf); } close(sock); return 0; } ◯開発環境 MacOSX 10.6 (64bit) Netbeans 6.8 gcc 4.2.1

  • Apache-PHP-fsockopenでSSL通信が出来ない。

    ----phpinfoの一部--- Apache/2.2.0 (Win32) DAV/2 mod_ssl/2.2.0 OpenSSL/0.9.8a mod_autoindex_color PHP/5.1.1 openssl OpenSSL support enabled OpenSSL Version OpenSSL 0.9.8a 11 Oct 2005 ------------------------- OpenSSL0.9.8aをインストール済みでコマンドプロンプトから実行可能な状態。パスも通しています。 -------------------------- <?php $fp=fsockopen("ssl://www.netsecurity.ne.jp",443); if (!$fp) { die("ERROR\n"); } /* 接続を終了 */ fclose($fp); ?> これを実行するとIEのステータスバー「https://xxxxxxxx/xampp/1.phpを開いています」と表示されたままになってしまいます。 SSLではない接続だと問題なく接続できます。 winXP xamppです。 「www.netsecurity.ne.jp」は適当にSSL通信できるサイトを見つけてテストしてみましたが…。 設定・テスト方法等、注意すべき点をご指摘いただきたく思います。

    • ベストアンサー
    • PHP
  • fsockopen で allabout のサイトだけ読めない?

    PHP4 を使っているのですが、get_heaers() 関数が搭載されていないので、fsockopen を使って自作しています。下記のような感じになっています。(かなり抜粋) $parts = parse_url($url); $fp = fsockopen($parts["host"], $parts["port"], $errno, $errstr); fputs($fp, $request."\n"); $response = fgets($fp, 1024); fclose($fp); 先日まではこのコードで問題なく動作していたのですが、今日になったら http://allabout.co.jp/ 等 allabout のサイトだけが読み込めなくなってしまいました。fgets がタイムアウトしてしまいます。 ブラウザでアクセスすると問題なく表示されますし、 telnet allabout.co.jp 80 で手動でアクセスしても問題はないようです。 PHPのfgetsが(freadも)タイムアウトしてしまうのですが、どのあたりに問題があるのでしょうか。

    • ベストアンサー
    • PHP
  • このphpを実行させたいのですが・・・

    はじめまして 私は現在同じLAN上のパソコンからphpを実行できるホストPCにGETコマンドを送り、遠隔でphpを実行したいと考えています。 ただ普通のC言語だとパソコンA→ホストPC→パソコンAのようにGETコマンドを送ったPCにそのphpの実行結果がきます。 私が今回したいのはパソコンA→ホストPC→パソコンBのようにGETコマンドを送るPCと実行結果が表示されるPCを別にしたいのです。 そこでこんなphpを作ってみました↓ ------------------------------------------------------ <?php $fp = fsockopen("パソコンBのIPアドレス" , パソコンBのポート番号 ,$errno, $errstr); if (!$fp) echo "$errstr ($errno)"; else{ fputs($fp,"abcd"); fclose($fp); } ?> ------------------------------------------------ しかしこのphpではパソコンA→ホストPC→パソコンBできないだけではなく 普通にパソコンA→ホストPC→パソコンAですら実行できません。 何が原因かわかるかたがおられましたらよろしくお願いします。 p.s. 最終的にはパソコンA→ホストPC→Xportのようにポート番号がパソコンA、ホストPCの「60」と異なる「10001」のXportに実行できるようにしたいです。 そこのところで問題点があると思われるかたも意見よろしくお願いします。

    • 締切済み
    • PHP