>>5059 Misaki > 簡単に調べてみましたがlibjpegが上手く入っていなかったようです。 これはまたシンプルな convert ですね。ウチでは以下のとおりです。 /usr/local/bin/convert: libMagick.so.10 => /usr/local/lib/libMagick.so.10 (0x28073000) libWand.so.10 => /usr/local/lib/libWand.so.10 (0x283c7000) libjbig.so.1 => /usr/local/lib/libjbig.so.1 (0x28479000) liblcms.so.1 => /usr/local/lib/liblcms.so.1 (0x28484000) libtiff.so.4 => /usr/local/lib/libtiff.so.4 (0x284b1000) libjasper.so.4 => /usr/local/lib/libjasper.so.4 (0x284fe000) libjpeg.so.9 => /usr/local/lib/libjpeg.so.9 (0x28548000) libpng.so.5 => /usr/local/lib/libpng.so.5 (0x28566000) libfpx.so.1 => /usr/local/lib/libfpx.so.1 (0x2858b000) libdpstk.so.1 => /usr/X11R6/lib/libdpstk.so.1 (0x2862b000) libdps.so.1 => /usr/X11R6/lib/libdps.so.1 (0x28633000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x2867a000) libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x28689000) libbz2.so.1 => /usr/lib/libbz2.so.1 (0x286da000) libxml2.so.5 => /usr/local/lib/libxml2.so.5 (0x286e9000) libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28818000) libfreetype.so.9 => /usr/local/lib/libfreetype.so.9 (0x28907000) libz.so.2 => /lib/libz.so.2 (0x28971000) libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x2897f000) libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x28988000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x2899f000) libm.so.2 => /lib/libm.so.2 (0x28a67000) libc.so.5 => /lib/libc.so.5 (0x28a80000) libstdc++.so.4 => /usr/lib/libstdc++.so.4 (0x28b5a000) >>5060 かばら > 質問1 > クライアント側から発行されるconnect()はサーバー側で発行されるaccept()の > ように処理をロックすることがあるのでしょうか。もしあるとすればどの > タイミングでコールした場合でしょうか。 「connect はブロックするか」(connect を発行した後、待たされることはあるか) という趣旨でよいですかね。ざっと考えつくところは、 1. 3way handshake が完了するまでブロックする 2. サーバもしくはサーバ側ルータにて一切のレスポンスを返さない 構成の場合、いつまでたっても返事がないので SYN を送り続け、ブロックする 3. サーバ側で処理しているソケット数が SOMAXCONN を超えていた場合、 滞留しているクライアントの処理が終わるか、タイムアウトになるまで ブロックする 4. サーバ側が listen しているが accept していない場合、ブロックする などなど。3・4 は記憶に頼って書いてますので、本当かどうかは自信がないです。 一方、ノンブロッキングソケットで connet すれば、ブロックしません。 > 質問2 > サーバー側がlisten()をコールする以前にクライアント側でconnect()をコール > るとエラー(返却値-1)が起きますが、クライアントがサーバーの状態を監視し、 > connect()をコールするタイミングを得ることは可能でしょうか。 > (試しにselect()を使用してみましたが上手くいきませんでした。) サーバ側で準備が整ったら通知がくるといった仕組みはないので、リトライ し続けるしかないですね。 |