K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]

新規投稿 | 開設者ホームページへ戻る | ヘルプ

[2003] Re:『Java謎+落とし穴徹底解明』の正誤について
投稿者:(ぱ)こと管理人
2017/09/21 00:56:22

はじめまして。反応が遅くなりまして申し訳ありません。 15年も前の本ですが、色々ご指摘ありがとうございます。 次の週末に正誤表に掲載いたします。 1点だけ。 >p.99 4行目 >その方法については「6.5 clone()とCloneable」で説明します. >→ 「その」が「深いコピー」を指すのなら、それは7.3.1で説明されているような…。 7.3.1の直列化を使った「深いコピー」はある種裏技的なものなので、 ここでの「深いコピー」は、あくまで6.5のものを意味しています。 >p.340 33行目(下から3行目) >FactoryTestImpl >→ あるいは私の理解が足りないだけかもしれません。しかし、これを直前の段落にあるWindowTestImplに置換すれば理解したつもりになれるのですが…。 ここはWindowsTestImplが正しいです。これが理解の妨げになっておりましたら 申し訳ありません。 ありがとうございました。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2002] 『Java謎+落とし穴徹底解明』の正誤について
投稿者:藤四郎
2017/09/16 21:07:59

はじめまして。 『Java謎+落とし穴徹底解明』は改訂も増刷もされていないのがとても残念です。現行のJavaでは本書で指摘されていた問題点の多くは改善されているらしいですが、本質的な理解を得るのに本書はまだまだ「現役」ではないかと素人ながら思います。(ただ、3.6.7や7.1は、相応の開発経験のない私には、まだしっくり理解できません。) さて、まだそちらの正誤表に載っていない事項を見つけたと思いました。重箱の隅的なものばかりで単に煩わしいかもしれませんが、報告させていただきます。(第4刷) p.37 3行目 fillPatternCodeで指定される色 → fillPatternCodeで指定される中塗りパターン p.74 8行目 ことにになり, p.90 12行目 p2 = new Point(); → Point2D() p.99 4行目 その方法については「6.5 clone()とCloneable」で説明します. → 「その」が「深いコピー」を指すのなら、それは7.3.1で説明されているような…。 p.104 Fig.2.14 1 2 3 4 → 0 1 2 3 p.166 下から2行目 elseif p.203 NOTE IntStackがIntArrayの一部であり → 「IntStackはIntArrayを持っている」ので「IntArrayがIntStackの一部であり」かと思います。 p.212 Fig.3.16 Polyine p.213 List 3.24 XDrawApplet.java l.25 "Polyine" p.214 List 3.30 ShapeIterator.java → 誤りではないですが、 4.2.4 (p.246) との整合性からpublicはないほうがよいのでは? Drawableなどの他のinterfaceではpublicされてないですし…。 p.217 List 3.34 DrawWindow.java l.24, 27 scale → 誤りではないですが、他の箇所ではthis.scaleとされています。 p.217 List 3.34 DrawWindow.java l.126, 143, 151, 158 dcToWcX(e.getX()), dcToWcX(e.getY())); → dcToWcX(e.getX()), dcToWcY(e.getY())); // こちらも、 xMin, yMinを 0にしているため発現しませんが。 p.225 1行目 finish() → finishCommand() p.240 Fig4.3 CLASSPAHT p.340 33行目(下から3行目) FactoryTestImpl → あるいは私の理解が足りないだけかもしれません。しかし、これを直前の段落にあるWindowTestImplに置換すれば理解したつもりになれるのですが…。 p.350 } catch (Exception ex) { err.printStackTrace(); p.354 List 7.1 l.1 import java.security.*; → 不要と思われます。 p.355 1行目 SecurityManagerのgetStackTrace()メソッドは → SecurityManagerのgetClassContext()メソッドは p.357 22行目 兼ね合いもなどある p.365 1行目 Colorというフィールド
[この投稿を含むスレッドを表示] [この投稿を削除]
[2001] Re:P.17:終了のマークとして0を送付について
投稿者:(ぱ)こと管理人
2017/08/23 19:06:08

>一方、TcpServerがserver_send.txtを送る際は、終了のマークとして0を送っていませんし、さらに‐1も送っていませんが、TcpClient側は‐1の受信で受信の終了を認識しています。 TcpClient.javaは、InputStremのread()メソッドで入力を1バイトずつ 読み込んでいますが、read()メソッドは、正常に1バイト読み込んだ時、 0~255の値を返します。つまり、TcpClientが-1を受信するということは あり得ません。-1が返るのは、「ストリームの終わりに達した場合」です。 https://docs.oracle.com/javase/jp/6/api/java/io/InputStream.html#read() なぜクライアントから見てストリームが終わるのかといえば、それは サーバ側でソケットをclose()したからです。 TcpClient.javaにて、終了のマーク0を送信しているのは、このソケットは まだサーバからデータを返すのに使うので、このタイミングでclose()するわけには いかないからです。 これで回答になっておりますでしょうか?
[この投稿を含むスレッドを表示] [この投稿を削除]
[2000] P.17:終了のマークとして0を送付について
投稿者:くまきち
2017/08/21 00:29:24

お世話になっております。 疑問に思った点があり、また質問させて頂きます。 P.16のTcpClient(リスト1-2)では、client_send.txtを送る際、終了のマークとして0を送付することで、P.15のTcpServer(リスト1-1)側は、受信の終了を認識しています。 一方、TcpServerがserver_send.txtを送る際は、終了のマークとして0を送っていませんし、さらに‐1も送っていませんが、TcpClient側は‐1の受信で受信の終了を認識しています。 この違いは、どこから来るものでしょうか? server側とClient側の仕組みの違いからくるものでしょうか?それとも、受信と送信の順番の違いからくるものでしょうか? またまた初歩的な質問なのかも知れませんが、よろしくお願いいたします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1999] Re:TestBBS.javaについて
投稿者:(ぱ)こと管理人
2017/08/17 23:11:10

>お世話になっております。 >P.108の最終行に「このメソッドはTestBBS.javaでは使用していません。」と記載がありますが、この”TestBBS.java”が、どのソースコードを意味するものなのか分からず、質問させて頂きました。 申し訳ありません。誤植(というか修正ミス)のようです。 元になったWeb記事 http://kmaebashi.com/programmer/webserver/henacat.html では、ShowBBS.javaとPosBBS.javaをまとめてTestBBS.javaというソースに 含めていました。 ただし、Javaでは1クラス1ファイルが普通なので、書籍化する際に分離したのですが、 この部分について修正が漏れておりました。 よってこの部分は、「このメソッドはサンプル掲示板では使用していません」に 読み替えてください。 正誤表に載せておきます。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1998] TestBBS.javaについて
投稿者:くまきち
2017/08/15 22:52:03

お世話になっております。 P.108の最終行に「このメソッドはTestBBS.javaでは使用していません。」と記載がありますが、この”TestBBS.java”が、どのソースコードを意味するものなのか分からず、質問させて頂きました。 よろしくお願いいたします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1997] Re:URLエンコードについて
投稿者:くまきち
2017/08/05 23:06:10

回答、ありがとうございます。 下記の回答内容を見ながらP.76まで読み進めてみて理解することができました! また、質問させていただくかも知れませんが、よろしくお願いいたします。 >>P.63からの「URLエンコードに対応する」の説明で理解できない部分があり、投稿させて頂きました。 >>P.64の上から2行目に、元の文字列の文字コードによって(例えば、Shift-Jisか、UTF-8か、EUCかによって)、エンコード結果が異なると書いてあります。 >>一方で、同じページのもう少し下の部分には「IEやFireFoxともにUTF-8でエンコードしたものを…」と記載があります。 >>これは「元の文字列の文字コードによって」という部分と矛盾するように感じ、よく分からなくなりました。 >>また、P.65の補足(下)でも、Shift-Jisとしてエンコードする例があり、ますます混乱しています。 > >返信が遅くなりまして申し訳ありません。 > >p.64冒頭にあるように、URLエンコードは、『元の文字列をバイト単位で解釈し、 >「%」の後ろにその16進表記をつなげたもの』です。よって、元の文字列を >どのエンコーディング(文字コード)で解釈するかにより結果は変わります。 >JavaのURLEncoderやURLDecoderのようなクラスライブラリで、エンコードするときも >デコードするときもエンコーディングを指定しなければいけないのは、そのためです。 >WebサイトでURLエンコード/デコードの機能を提供しているページもよくありますが、 >そういうページでも、たいては文字コードが選べるようになっていると思います。 > >その上で、各ブラウザがどのエンコーディング(文字コード)でURLエンコードするかに >ついては、W3Cで定められており、それがUTF-8である、ということです。 > >これで回答になっていますでしょうか? >
[この投稿を含むスレッドを表示] [この投稿を削除]
[1996] Re:URLエンコードについて
投稿者:(ぱ)こと管理人
2017/08/04 20:54:02

>P.63からの「URLエンコードに対応する」の説明で理解できない部分があり、投稿させて頂きました。 >P.64の上から2行目に、元の文字列の文字コードによって(例えば、Shift-Jisか、UTF-8か、EUCかによって)、エンコード結果が異なると書いてあります。 >一方で、同じページのもう少し下の部分には「IEやFireFoxともにUTF-8でエンコードしたものを…」と記載があります。 >これは「元の文字列の文字コードによって」という部分と矛盾するように感じ、よく分からなくなりました。 >また、P.65の補足(下)でも、Shift-Jisとしてエンコードする例があり、ますます混乱しています。 返信が遅くなりまして申し訳ありません。 p.64冒頭にあるように、URLエンコードは、『元の文字列をバイト単位で解釈し、 「%」の後ろにその16進表記をつなげたもの』です。よって、元の文字列を どのエンコーディング(文字コード)で解釈するかにより結果は変わります。 JavaのURLEncoderやURLDecoderのようなクラスライブラリで、エンコードするときも デコードするときもエンコーディングを指定しなければいけないのは、そのためです。 WebサイトでURLエンコード/デコードの機能を提供しているページもよくありますが、 そういうページでも、たいては文字コードが選べるようになっていると思います。 その上で、各ブラウザがどのエンコーディング(文字コード)でURLエンコードするかに ついては、W3Cで定められており、それがUTF-8である、ということです。 これで回答になっていますでしょうか?
[この投稿を含むスレッドを表示] [この投稿を削除]
[1995] URLエンコードについて
投稿者:くまきち
2017/07/30 16:59:05

P.63からの「URLエンコードに対応する」の説明で理解できない部分があり、投稿させて頂きました。 P.64の上から2行目に、元の文字列の文字コードによって(例えば、Shift-Jisか、UTF-8か、EUCかによって)、エンコード結果が異なると書いてあります。 一方で、同じページのもう少し下の部分には「IEやFireFoxともにUTF-8でエンコードしたものを…」と記載があります。 これは「元の文字列の文字コードによって」という部分と矛盾するように感じ、よく分からなくなりました。 また、P.65の補足(下)でも、Shift-Jisとしてエンコードする例があり、ますます混乱しています。 もしかしたら初歩的な質問なのかもしれませんが、詳しい方いましたら、教えてください。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1994] Re:HenacatのC#版を作りました
投稿者:nendo_code
2017/07/12 22:57:45

下記に公開しました。 https://github.com/nendo-code/Henacat_sharp ありがとうございました。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1993] Re:HenacatのC#版を作りました
投稿者:nendo_code
2017/07/12 19:34:43

>まったく問題ありません。どのようなものになっているか私も楽しみです。 > >よろしくお願いいたします。 ありがとうございます! 公開しましたらこちらの掲示板で報告させていただきますね。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1992] Re:HenacatのC#版を作りました
投稿者:(ぱ)こと管理人
2017/07/11 07:57:32

はじめまして。 >その結果HenacatのC#移植版のコードが出来たので、もしよろしければGitHubで公開させていただければと考えておりますが、いかがでしょうか。 まったく問題ありません。どのようなものになっているか私も楽しみです。 よろしくお願いいたします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1991] HenacatのC#版を作りました
投稿者:nendo_code
2017/07/09 17:53:38

はじめまして。nendo_codeと申します。 「基礎からのWebアプリケーション開発入門」読ませていただきました。今までなんとなくぼんやりとしか知らなかったWebの知識を整理する事ができ、非常に勉強になりました。 私はC#プログラマなので、学習にあたり細かい動きを理解するために、C#にHenacatのコードを移植して動かしてみたりしました。 その結果HenacatのC#移植版のコードが出来たので、もしよろしければGitHubで公開させていただければと考えておりますが、いかがでしょうか。 こちらとしては、「なんとなく作っちゃったから公開しよう」くらいのノリですので、ダメであればダメでよいです。(書籍として販売されている以上、ご都合などあるかもしれませんし。) よろしくお願いいたします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1990] テスト
投稿者:みっきー
2017/06/16 14:08:39

ウェブサイトから飛んできました。 掲示板ってどうやって作るのかなあという初心者です。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1988] Re:26p~27p
投稿者:kokonotu
2017/04/27 16:29:13

>追加情報ありがとうございます。 >80番に修正はしてあったわけですね。失礼しました。 >その上で、今も以下のエラーが出ている、ということでよいでしょうか。 > >>java.net.ConnectException: Connection refused: connect >> at java.net.DualStackPlainSocketImpl.connect0(Native Method) >> at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) >> at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) >> at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) >> at java.net.AbstractPlainSocketImpl.connect(Unknown Source) >> at java.net.PlainSocketImpl.connect(Unknown Source) >> at java.net.SocksSocketImpl.connect(Unknown Source) >> at java.net.Socket.connect(Unknown Source) >> at java.net.Socket.connect(Unknown Source) >> at java.net.Socket.<init>(Unknown Source) >> at java.net.Socket.<init>(Unknown Source) >> at TcpClient.main(TcpClient.java:6) > >だとすれば、TcpClient.javaの6行目でWebサーバへの接続に失敗しているわけで、 >client_send.txtの内容については(まだ送っていないので)ひとまず無関係ですよね。 > >また、貼っていただいたTcpClient.javaにも不審な点はありません。 >当方で、貼っていただいたTcpClient.javaとclient_send.txtにて >実験してみましたが、正しくclient_recv.txtが生成されました。 >私の環境もWindows 10です。Apacheは2.4.23なので、ほぼ同じといってよさそうです。 > >It works!を表示したまま、とのことなので、Apacheはちゃんと起動していて、 >ブラウザからはアクセスできている状態ですよね。 >この状態で、TcpClient.javaから接続できない原因は、正直、ちょっと >思いつきません。 > >念のため確認ですが、Apacheを起動した方のコマンドプロンプトには、 >何かメッセージは出ていませんか? >私の環境では以下のメッセージが出ています。 > >C:\Apache24\bin>httpd >AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::4cd9:c88:9a45:70bc. Set the 'ServerName' directive globally to suppress this message > >これは、本来httpd.confでServerNameを指定すべきところ、やってないことに >起因するもので、この実験では問題ありません(本の中で説明していないのは >ちょっと手抜きかもしれませんが)。他に何か出ていたりしないでしょうか。 > >あるいは、ファイアウォールとかアンチウィルスソフトとかで接続が >遮断されていないでしょうか。 > >すみません、これぐらいしか思いつきません。 > > ご返信ありがとうございます。 apacheには AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name, using fe80::b097:7385:e0c9:544f. Set the 'ServerName' directive globally to suppress this message と出ております。 セキュリティソフトはNortonを入れているのでこれが原因なのかもしれません汗
[この投稿を含むスレッドを表示] [この投稿を削除]
[1987] Re:26p~27p
投稿者:(ぱ)こと管理人
2017/04/27 02:01:20

追加情報ありがとうございます。 80番に修正はしてあったわけですね。失礼しました。 その上で、今も以下のエラーが出ている、ということでよいでしょうか。 >java.net.ConnectException: Connection refused: connect > at java.net.DualStackPlainSocketImpl.connect0(Native Method) > at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) > at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) > at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) > at java.net.AbstractPlainSocketImpl.connect(Unknown Source) > at java.net.PlainSocketImpl.connect(Unknown Source) > at java.net.SocksSocketImpl.connect(Unknown Source) > at java.net.Socket.connect(Unknown Source) > at java.net.Socket.connect(Unknown Source) > at java.net.Socket.<init>(Unknown Source) > at java.net.Socket.<init>(Unknown Source) > at TcpClient.main(TcpClient.java:6) だとすれば、TcpClient.javaの6行目でWebサーバへの接続に失敗しているわけで、 client_send.txtの内容については(まだ送っていないので)ひとまず無関係ですよね。 また、貼っていただいたTcpClient.javaにも不審な点はありません。 当方で、貼っていただいたTcpClient.javaとclient_send.txtにて 実験してみましたが、正しくclient_recv.txtが生成されました。 私の環境もWindows 10です。Apacheは2.4.23なので、ほぼ同じといってよさそうです。 It works!を表示したまま、とのことなので、Apacheはちゃんと起動していて、 ブラウザからはアクセスできている状態ですよね。 この状態で、TcpClient.javaから接続できない原因は、正直、ちょっと 思いつきません。 念のため確認ですが、Apacheを起動した方のコマンドプロンプトには、 何かメッセージは出ていませんか? 私の環境では以下のメッセージが出ています。 C:\Apache24\bin>httpd AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::4cd9:c88:9a45:70bc. Set the 'ServerName' directive globally to suppress this message これは、本来httpd.confでServerNameを指定すべきところ、やってないことに 起因するもので、この実験では問題ありません(本の中で説明していないのは ちょっと手抜きかもしれませんが)。他に何か出ていたりしないでしょうか。 あるいは、ファイアウォールとかアンチウィルスソフトとかで接続が 遮断されていないでしょうか。 すみません、これぐらいしか思いつきません。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1986] Re:26p~27p
投稿者:kokonotu
2017/04/26 15:12:51

>こんにちは。読んでいただきありがとうございます。 > >>>【結果】 >>java.net.ConnectException: Connection refused: connect > >エラーメッセージがこうなので、Webサーバへの接続に失敗しています。 > >TcpClient.javaは、最初は自前のサーバTcpServer.javaに接続し、 >p.26でApacheに接続しようとしていますが、 >TcpServer.javaはポート番号8001で待ち受けるのに対し、 >Apacheは(設定を変えなければ)80番で待ちます。 > >推測ですが、p.26の一番下のポート番号の変更を忘れている、 >ということはないでしょうか? >当方でやってみたら、同じエラーが再現しました。 > >違っていましたらすみません。 ご返信ありがとうございます。 現在TcpClient.javaに関しては import java.io.*; import java.net.*; public class TcpClient { public static void main(String[] args) throws Exception { try (Socket socket = new Socket("localhost",80); //localにsocketを生成 //下記のtxtに対して出力用のストリームを開く FileInputStream fis = new FileInputStream("client_send.txt"); FileOutputStream fos = new FileOutputStream("client_recv.txt")) { int ch; // client_send.txtの内容をサーバに送信 OutputStream output = socket.getOutputStream(); //ストリームの終わりに達した場合は-1が返る while ((ch = fis.read()) != -1) { output.write(ch); //読み込んだ内容をOutputStreamに } // 終了を示すため、ゼロを送信 //output.write(0); //ここではサーバーからの返信がいるためソケットは閉じない // サーバからの返信をclient_recv.txtに出力 InputStream input = socket.getInputStream(); while ((ch = input.read()) != -1) { fos.write(ch); } } catch (Exception ex) { ex.printStackTrace(); } } } と記述してあります。 client_send.txtには元々 GET /index.html HTTP/1.1 Host: localhost:8001 Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding: gzip, deflate, sdch, br Accept-Language: ja,en-US;q=0.8,en;q=0.6 Cookie: _ga=GA1.1.1220433733.1486961623; PHPSESSID=dl5oi2iab8460ino9qrupnqnr3 だったのを GET /index.html HTTP/1.1 Host: localhost:80 Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding: gzip, deflate, sdch, br Accept-Language: ja,en-US;q=0.8,en;q=0.6 Cookie: _ga=GA1.1.1220433733.1486961623; PHPSESSID=dl5oi2iab8460ino9qrupnqnr3 にしたのですがうまくいきません
[この投稿を含むスレッドを表示] [この投稿を削除]
[1985] Re:26p~27p
投稿者:(ぱ)こと管理人
2017/04/22 01:41:06

こんにちは。読んでいただきありがとうございます。 >>【結果】 >java.net.ConnectException: Connection refused: connect エラーメッセージがこうなので、Webサーバへの接続に失敗しています。 TcpClient.javaは、最初は自前のサーバTcpServer.javaに接続し、 p.26でApacheに接続しようとしていますが、 TcpServer.javaはポート番号8001で待ち受けるのに対し、 Apacheは(設定を変えなければ)80番で待ちます。 推測ですが、p.26の一番下のポート番号の変更を忘れている、 ということはないでしょうか? 当方でやってみたら、同じエラーが再現しました。 違っていましたらすみません。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1984] 26p~27p
投稿者:kokonotu
2017/04/20 16:58:55

初めてkokonotuといいます。 ポインタ完全制覇をとても楽しく読ませていただきました。 今回も勉強させて頂きます。 お聞きしたい事は、apacheを起動して[It works]が表記された事が確認後、ブラウザに表示したままTcpClient.javaを起動したのですがコマンドプロンプトにエラーが出てしまいます。何卒宜しくお願い致します。 >【結果】 java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) at java.net.AbstractPlainSocketImpl.connect(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.<init>(Unknown Source) at java.net.Socket.<init>(Unknown Source) at TcpClient.main(TcpClient.java:6) 【補足】 client_sendには以下のように記載しています GET /index.html HTTP/1.1 Host: localhost:80 Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding: gzip, deflate, sdch, br Accept-Language: ja,en-US;q=0.8,en;q=0.6 Cookie: _ga=GA1.1.1220433733.1486961623 【環境】 OS: windows10 apache:2.4.25 ご教授よろしくお願いいたします
[この投稿を含むスレッドを表示] [この投稿を削除]
[1983] Re:書籍「Webサーバを…」の1.3.4について
投稿者:(ぱ)こと管理人
2017/04/03 12:19:39

>GET /index.html HTTP/1.1 >Host: localhost:80 >Connection: keep-alive >Cache-Control: max-age=0 >Upgrade-Insecure-Requests: 1 >User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 >Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 >Accept-Encoding: gzip, deflate, sdch, br >Accept-Language: ja,en-US;q=0.8,en;q=0.6 昼休みなので取り急ぎですが、このclient_send.txtの末尾の空行が抜けてませんでしょうか。 リクエストは飛んでいて、ステータスが408(タイムアウト)になっていますので。 以前も同様の質問があり、その時はレスポンスは返っていたのですが… >3. サポートサイトよりDLした"TcpClient.java(Apache向け)"のファイル名を修正しコンパイル >4. "java TcpClient"で実行 > >【結果】 >25秒ほどたつと実行が終了 >client_recv.txtは生成されるが空 > >【access_log】 >127.0.0.1 - - [01/Apr/2017:16:11:02 -0700] "-" 408 - > >【補足】 >ブラウザからアクセスすると問題なく接続され、access_logにも以下のログが残ります >::1 - - [01/Apr/2017:16:15:12 -0700] "GET / HTTP/1.1" 304 - > > >【環境】 >OS: macOS Sierra 10.12.4 >Server version: Apache/2.4.25 (Unix) >javac 1.8.0_111 > > >何かわかることがございましたらご教授よろしくお願いいたします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1982] 書籍「Webサーバを…」の1.3.4について
投稿者:けんと
2017/04/02 08:18:48

先日「Webサーバを作りながら学ぶ 基礎からのWebアプリケーション開発入門」を購入し読み進めています。 「1.3.4 TCPクライアントでWebサーバを叩く」の箇所で想定通りのHTTPレスポンスが得られなかったので質問させてください。 最後に詳細な環境をお伝えいたしますが、当方はMacで実行しています。 【手順】 1. Apacheを起動 2. 1.3.3で取得したserver_recv.txtをclient_send.txtにコピー(Hostのポートだけ80に修正してます) GET /index.html HTTP/1.1 Host: localhost:80 Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding: gzip, deflate, sdch, br Accept-Language: ja,en-US;q=0.8,en;q=0.6 3. サポートサイトよりDLした"TcpClient.java(Apache向け)"のファイル名を修正しコンパイル 4. "java TcpClient"で実行 【結果】 25秒ほどたつと実行が終了 client_recv.txtは生成されるが空 【access_log】 127.0.0.1 - - [01/Apr/2017:16:11:02 -0700] "-" 408 - 【補足】 ブラウザからアクセスすると問題なく接続され、access_logにも以下のログが残ります ::1 - - [01/Apr/2017:16:15:12 -0700] "GET / HTTP/1.1" 304 - 【環境】 OS: macOS Sierra 10.12.4 Server version: Apache/2.4.25 (Unix) javac 1.8.0_111 何かわかることがございましたらご教授よろしくお願いいたします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1980] Re:ubuntuのgccで出来てvisualstudioで出来ない
投稿者:k
2017/02/07 23:57:09

1章読み終わりました。 HTTPのことが理解できてとても勉強になりました。 2章以降でも質問させてください。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1979] Re:ubuntuのgccで出来てvisualstudioで出来ない
投稿者:(ぱ)こと管理人
2017/02/05 17:31:56

>基礎からのWEBアプリケーション開発入門 >購入し読んでおります。 ありがとうございます。 >一番初めの tcp_server.c と tcp_client.cの中に sys/socket.h >が見つからずwin+visualstudioではコンパイルできません。 (紙の本なら)p.18の補足「C, C#の場合」に掲載している tcp_server.cおよびtcp_client.cですね。 説明不足だったかもしれませんが、その補足の冒頭にもあるように 「もともとTCPやソケットはUNIX上で、C言語で使用されてきたもの」なので、 Linuxではそのまま使えても、Visual StudioではWindows版のソケットライブラリ であるWinsockを使うことになります。 >sys/socket.hの中身を見てみたいのですが見当たらないのですが。。 #includeするのはsocket.hではなくwinsock2.hになりますし、 リンク時には ws2_32.libが必要です。今ぐぐったのですが、 たとえば以下のページを参考にしてください。 http://www.geekpage.jp/programming/winsock/
[この投稿を含むスレッドを表示] [この投稿を削除]
[1978] ubuntuのgccで出来てvisualstudioで出来ない
投稿者:k
2017/02/03 09:48:00

基礎からのWEBアプリケーション開発入門 購入し読んでおります。 一番初めの tcp_server.c と tcp_client.cの中に sys/socket.h が見つからずwin+visualstudioではコンパイルできません。 ubuntu 14でgccでコンパイルしたら動きました。 この違いはなんでしょうか? sys/socket.hの中身を見てみたいのですが見当たらないのですが。。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1968] Re:疑りぶかいあなたのためのオブジェクト指向再入門
投稿者:(ぱ)こと管理人
2016/09/06 23:32:31

>そこで、出来ましたら、Java の良い本をご紹介願えますと幸いです。 >何卒、宜しくお願い致します。 すみません、最近の本は知らないのですが…… 手前味噌でよければ、 「Java謎+落とし穴徹底解明」 https://www.amazon.co.jp/Java-%E8%AC%8E-%E8%90%BD%E3%81%A8%E3%81%97%E7%A9%B4-%E5%BE%B9%E5%BA%95%E8%A7%A3%E6%98%8E-%E6%A8%99%E6%BA%96%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC%E3%82%BA%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA/dp/4774113611 amazonマーケットプレイスで1円とかで買えるようです。 3章の「継承をどう使うか? どこまで使えるか?」あたりは、ある意味「疑り深い~」の 続きと言えるかと思います。 ただ、かなり古い本ですので(JDK1.3の頃)、今となっては古くなってしまっている ところもあります。Genericsや列挙がないことに不満を述べていますが、それらは Java5で実装されましたので。 あとは定番で、Effective Javaとかでしょうか…… https://www.amazon.co.jp/EFFECTIVE-JAVA-Java-Joshua-Bloch/dp/4621066056
[この投稿を含むスレッドを表示] [この投稿を削除]
[1967] Re:疑りぶかいあなたのためのオブジェクト指向再入門
投稿者:晶夫(あきお)
2016/09/05 11:13:19

前橋 殿 返信ありがとうございます。 私は小企業のIT派遣会社で働いています。 現在、常駐先が見つからず、本社にて「待機」の状況です。 そのため、この様な掲示板にカキコできる時間が取れています。 >私自身割と大手のSIerにいる身ですので、私より年上の方がコード書きの勉強を >されているとなると尊敬しますし励みになります。 私の24年間は大手の製造メーカーで従業員は2万人規模の大会社でした。 そこで、「生産管理システム・MES」の 要件定義~概要設計~基本設計~詳細設計~(開発・単体テスト)~結合テスト~ システムテスト~本番化~保全 という流れで、プログラムは保全でしか見ていませんでした。 しかし、24年間務めた会社を辞め、転職して今の小企業に居ます。 小企業なので、上述の 要件定義~以下すべて~保全 まで出来る人が派遣先が見つけやすいのです。 年齢も高いので、派遣先の年齢制限に引っかかる場合も多く贅沢は言えないのです。 そのため、保全でしかやっていなかったコーディングをやらざるを得ない状況で、 コードの勉強をしています。 「疑りぶかいあなたのためのオブジェクト指向再入門」は継続しない、との事、 残念ですが、忙しい前橋殿に置いては致し方ないと思います。 そこで、出来ましたら、Java の良い本をご紹介願えますと幸いです。 何卒、宜しくお願い致します。 晶夫
[この投稿を含むスレッドを表示] [この投稿を削除]
[1966] Re:疑りぶかいあなたのためのオブジェクト指向再入門
投稿者:(ぱ)こと管理人
2016/09/05 02:39:55

はじめまして。 >SE歴は24年になります。前橋殿より5歳上になります。 私自身割と大手のSIerにいる身ですので、私より年上の方がコード書きの勉強を されているとなると尊敬しますし励みになります。 >それが、昨日、「疑りぶかいあんたのためのオブジェクト指向再入門」 >を読ませて頂き、目からウロコが落ちました。 ありがとうございます。 >この連載は、まだ、続くと書いてありました。 >本当に期待しています。 すみません、「これから随時書き足していくつもりです」と書いたのが かれこれ10年以上前の話ですので、今から続きを書くかというとちょっとお約束 できかねるところではあります。 続きを書くとすると次のネタは「継承」ですが、よくある「Shapeを継承して PolylineやRectangleやCircleを作る」という例は、Pascalの可変レコード型や Cでそれを共用体と列挙型で真似する例のような「データメンバを拡張する例」としては なかなか便利でわかりやすいのですが、 メソッドのオーバーライドの例として、図形を描画するdraw()メソッドを作ろう、 となったあたりでかなりうさんくさくなります。よく入門書では出てくる例ですが、 実のところこの使い方は「間違い」だと私は思っています(本にも何度か書いていますが)。 その辺でうんうんうなっているうちに、10年過ぎた感じです……
[この投稿を含むスレッドを表示] [この投稿を削除]
[1965] 疑りぶかいあなたのためのオブジェクト指向再入門
投稿者:晶夫(あきお)
2016/09/02 15:39:38

前橋和弥 殿 晶夫と申します。 学生時代からPascal やC などを個人的に勉強してきて、就職と同時にSEになった 者です。 SE歴は24年になります。前橋殿より5歳上になります。 その私でも、オブジェクト指向に入れていませんでした。 正直、オブジェクト指向のメリットが分からず、Java や VB.Net や C# の勉強をしていて、 とにかく、全然、自分の物になっていませんでした。 それが、昨日、「疑りぶかいあんたのためのオブジェクト指向再入門」 を読ませて頂き、目からウロコが落ちました。 これから、本格的にオブジェクト指向を学ぶ自信になりました。 思わず、お礼が言いたくて、この投稿を致しました。 この連載は、まだ、続くと書いてありました。 本当に期待しています。 オブジェクト指向のメリットが分からず、先へ進めずにいたのが、 進めます。 とにかく、続きをお願いいたします。 ありがとうございました。 晶夫
[この投稿を含むスレッドを表示] [この投稿を削除]
[1964] Re:Apacheへのリクエストがタイムアウト
投稿者:stonehand
2016/08/03 08:01:20

ありがとうございました。 >一応、client_send.txtの末尾の、HTTPリクエストヘッダの終わりを示す >空行を抜いたら、同様のタイムアウトが返りました。 >念のための確認ですが、同様になっていないでしょうか。 client_send.txtに改行を加えて試したところ、正しく動作しました。 今後とも、よろしくお願いいたします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1963] Re:Apacheへのリクエストがタイムアウト
投稿者:(ぱ)こと管理人
2016/08/03 00:22:11

>>(2)client_send.txtをここに貼ってください。 >GET /index.html HTTP/1.1 >Accept: text/html, application/xhtml+xml, */* >Accept-Language: ja-JP >User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko >Accept-Encoding: gzip, deflate >Host: localhost:8001 >DNT: 1 >Connection: Keep-Alive 見たところ不審なところはないですし、これをコピーして作った client_send.txtで、当方では正常動作しました。 症状からして、 ・タイムアウトとはいえレスポンスが返ってきているので、  Apacheと通信すること自体はできている。 ・しかし、Apacheは、HTTPリクエストを最後まで受け取れず、  タイムアウトを返している。 という状況です。 一応、client_send.txtの末尾の、HTTPリクエストヘッダの終わりを示す 空行を抜いたら、同様のタイムアウトが返りました。 念のための確認ですが、同様になっていないでしょうか。
[この投稿を含むスレッドを表示] [この投稿を削除]