注:私はWindowsで実行しています(ただし、このような問題へのアプローチでは、できるだけクロスプラットフォームになりたいと思っています)
ブロックしないことがいかに良いことかは理解していますが、私の特定のケースではブロックしたいのですが、ブロックさせるためのトリックはありますか、それとも私がここでやっていることへのより良いアプローチがあります:
hPutStrLn hdl "bye\n"
hClose hdl
問題は、hClose
完全な「bye\n」が回線を介して送信される前に get が呼び出され、ネットワークの反対側では単に「b」または「by」が取得されhClose
、接続が切断されることです。
hClose
では、回線を切断する前に完全な「bye\n」を確実に送信するにはどうすればよいでしょうか?
ちょっとだけ睡眠をとって、解決策の不完全さを受け入れるだけですか?