2017-08-27 18 views
1

PHPを使用してTCPソケット経由で.BINファイルを送信しようとしています。PHPはTCPソケット経由でファイルを送信します

$fp = fsockopen("127.0.0.1", 80, $errno, $errstr, 30); 

if (!$fp) { 
    echo "$errstr ($errno)<br />\n"; 
} else { 
    fwrite($fp, "You message"); 
    while (!feof($fp)) { 
     echo fgets($fp, 128); 
    } 
    fclose($fp); 
} 

私はBINファイルを送信する方法がわからないよ、と、ページがちょうど無限ループにそれをテストする場合:これは私が持っているものです。

誰かが私を助けることができますか? PHPを使用してTCP経由でファイルを送信するより良い方法はありますか?

+0

を(ソケットがへの書き込みを)しかし、あなたは(別から読んでいるようなあなたのループが見えますおそらくbinファイル)。 fopen()を使用してbinファイルを開き、ループ内で内容をソケットに書き出します。 – RichGoldMD

+0

@RichGoldMDあなたが何を意味するのか理解しようとしています。私のコーディング例がありますので、あなたが指摘しようとしていることを十分に理解することができますか? – Mitch

+0

下の私の答えを参照してください – RichGoldMD

答えて

1

あなたは2つのファイルリソースが必要ですが、あなただけのアウトバウンド1開いている:あなたが開いている一つのファイルリソースを持っている

$fp = fsockopen("127.0.0.1", 80, $errno, $errstr, 30); 
$fb_bin = fopen("myfile.bin", 'rb'); 
// TODO error test $fp_bin 

if (!$fp) { 
    echo "$errstr ($errno)<br />\n"; 
} else { 
    // fwrite($fp, "You message"); 
    while (!feof($fp_bin)) { 
     fwrite($fp, fread($fp_bin, 128)); // ? use a larger value 
     // TODO Error test the read and write operations 
    } 
    fclose($fp); 
    fclose($fp_bin); 
} 
+0

私はこれを試して、私はこれをさらにデバッグできるかどうかを見て、もちろんあなたに知らせてください。 – Mitch

+0

運がありましたか? – RichGoldMD

関連する問題