質問: 質問場所が間違っていたら申し訳ございません。 (ご指摘受ければ、質問を取り下げます。) 当方半年前にIT系の会社に未経験で就職し、OJTで実務を学びながらC言語を学習しています。 学習にあたって今までは教本を読んで勉強していたのですが、先輩からの指示でアウトプットを意識して実際にコードを書いてC言語を学んでいく学習方法を行っていく方針になりました。 そこでひとつアプリを作成してみるということになりまして、ネット上のサイトにある画像をダウンロードし、指定のフォルダに保存するといったものを考え、アプリ作成する報告をしています。 ただ、いざどうやって作っていこうと考えたとき、どこから着手していいかわからず自分の持っている知識だけでは足りないのでアプリ制作に必要な知識を勉強したいと考えております。 上記のような機能を実装しようとしたときどういった知識をもっていれば問題なくアプリを制作できるのでしょうか。 現在、必要な知識について調べてみていますが、ソケット関連の知識が必要そうだというところまでしか分かっていません。 その必要そうだと思うソケット関連の知識も本当に必要なものなのか知識が不足しているため確証が持てず、そのため学習していく内容の方向性が合っているのか不安があります。 作成したいアプリを作るためにはソケット関連の知識を学習していく方向性で合っているのか、また、ソケット関連以外に必要な知識があるならばその知識がどういったものなのか、この教本を読めば欲しい知識が手に入るよといったお勧めの書籍があればぜひ教えていただきたいです。 以上です。よろしくお願いいたします。
回答: こんにちは。 > > ネット上のサイトにある画像をダウンロードし、指定のフォルダに保存するといったものを考え、アプリ作成する報告をしています。 > > > 定番はヘッドレスブラウザを使うことと思います。 しかし、C言語とは無関係な世界です。C言語の学習にはなんの役にも立たないでしょう。 このような高度なことではなく、画像のURLを直接指定してそれをダウンロードするだけなら、libCurlを使うのも手です。 それでも、C言語の学習というよりはlibCurlの使い方の学習の面が強いでしょう。そして、socketをあまり学べないので意味がないかも知れません。 socketから学習する場合は、自力でsocketを使ってhttp getリクエストを発行してダウンロードするイメージになると思います。検索すると意外に解説記事がありました。それらをきちんと理解してプログラムできれば非常に力が付きそうです。 HTTP でファイルをダウンロードして保存する方法 Javaですが概念を把握できるかも。 [C言語] HTTPクライアントを作ってみる ダウンロード限定ではないですがC言語です。