Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21105

[Rust] the book 2nd サンプルコードのサーバーがChromeだと失敗する → bufferを増やす

$
0
0

問題

「TRPL」または「the book」こと、Rustの公式入門ガイド: The Rust Programming Language
最終章(20章)の課題として簡易サーバーを作成した。
しかしサンプルコードそのままだとChromeからではページが表示されなかった(Firefoxからなら問題なく表示される)。

原著: https://doc.rust-lang.org/book/ch20-03-graceful-shutdown-and-cleanup.html
日本語訳(少し古い): https://doc.rust-jp.rs/book/second-edition/ch20-03-graceful-shutdown-and-cleanup.html

解決法

バッファサイズを増やせばChromeでも表示できるようになる。

src/bin/main.rs
fnhandle_connection(mutstream:TcpStream){letmutbuffer=[0;1024];// ここを 512 → 1024 に変更。stream.read(&mutbuffer).unwrap();// --snip--}

またこの問題と直接の関係はないが、スレッド数と接続回数(?)の上限値を増やしたほうが動作確認しやすかった。
サンプルコードそのままだと1回の接続だけでサーバーがシャットダウンしてしまう。

src/bin/main.rs
fnmain(){letlistener=TcpListener::bind("127.0.0.1:7878").unwrap();letpool=ThreadPool::new(8);// 4 → 8 に変更。forstreaminlistener.incoming().take(20){// 2 → 20 に変更。// --snip--}// --snip--}

よほど性能の低いマシンでもなければ問題なく動作するはず。

参考

https://users.rust-lang.org/t/rust-web-server-not-working-with-requests-from-chrome/34835


Viewing all articles
Browse latest Browse all 21105

Trending Articles