「スッキリわかるJava入門 実践編」p.315にある「http://dokojava.jpを取得するプログラム」を目コピーで入力し、コマンドプロンプトからコンパイル、実行して、問題なく該当htmlが出力されることを確認しました。
java
1import java.net.*; 2import java.io.*; 3 4public class Main { 5 public static void main(String[] args) throws IOException { 6 Socket sock = new Socket("dokojava.jp",80); 7 InputStream is = sock.getInputStream(); 8 OutputStream os = sock.getOutputStream(); 9 10 os.write("GET /index.html HTTP/1.0\r\n".getBytes()); 11 os.write("\r\n".getBytes()); 12 os.flush(); 13 14 InputStreamReader isr = new InputStreamReader(is); 15 int i = isr.read(); 16 while(i != -1) { 17 System.out.print((char)i); 18 i = isr.read(); 19 } 20 sock.close(); 21 } 22}
次に、取得するURLを自分の持っているwebスペース「http://hoge.sakura.ne.jp/」(仮名)にしようと、以下の部分を書き換えました。
Socket sock = new Socket("dokojava.jp",80);
↓
Socket sock = new Socket("hoge.sakura.ne.jp",80);
しかし、実行すると以下のような出力となりました。
HTTP/1.1 404 Not Found
Date: Wed, 02 Nov 2016 12:41:05 GMT
Server: Apache/2.2.31
Content-Length: 208
Connection: close
Content-Type: text/html; charset=iso-8859-1
※ブラウザから「http://hoge.sakura.ne.jp/index.html」へのアクセスは問題なくできます。
ポート番号の設定や、サーバ側ではじかれたなど、想像することはできますが、通信周りは初心者なので、原因と対策がわかりません。
どのように改善すれば「http://hoge.sakura.ne.jp/index.html」へのアクセスも可能になるのか、そもそもできないのか?(なぜできないのか?)教えて頂けないでしょうか?
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー