質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.84%

  • C

    3351questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

通信を使ったアプリの制作の学習について

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 131

m0m0

score 4

質問場所が間違っていたら申し訳ございません。
(ご指摘受ければ、質問を取り下げます。)

当方半年前にIT系の会社に未経験で就職し、OJTで実務を学びながらC言語を学習しています。
学習にあたって今までは教本を読んで勉強していたのですが、先輩からの指示でアウトプットを意識して実際にコードを書いてC言語を学んでいく学習方法を行っていく方針になりました。
そこでひとつアプリを作成してみるということになりまして、ネット上のサイトにある画像をダウンロードし、指定のフォルダに保存するといったものを考え、アプリ作成する報告をしています。
ただ、いざどうやって作っていこうと考えたとき、どこから着手していいかわからず自分の持っている知識だけでは足りないのでアプリ制作に必要な知識を勉強したいと考えております。
上記のような機能を実装しようとしたときどういった知識をもっていれば問題なくアプリを制作できるのでしょうか。
現在、必要な知識について調べてみていますが、ソケット関連の知識が必要そうだというところまでしか分かっていません。
その必要そうだと思うソケット関連の知識も本当に必要なものなのか知識が不足しているため確証が持てず、そのため学習していく内容の方向性が合っているのか不安があります。
作成したいアプリを作るためにはソケット関連の知識を学習していく方向性で合っているのか、また、ソケット関連以外に必要な知識があるならばその知識がどういったものなのか、この教本を読めば欲しい知識が手に入るよといったお勧めの書籍があればぜひ教えていただきたいです。

以上です。よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+4

ソケット関連の知識が必要そうだというところまでしか分かっていません。

パソコン環境の開発という前提では、通常「ネット上のサイトにある画像をダウンロード」するようなタスクに対して、ソケットレベルから自前で実装することは行いません

WindowsであればWinHTTPなどOS組み込みのHTTPレイヤーがありますし、Linuxでもcurlのような標準的に使われるライブラリがありますので、それらを使ってHTTP自体のハンドリングはライブラリに任せてしまいましょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/27 20:14

    パソコン環境の開発経験自体ない為、WindowsのWinHTTPやLinuxでもcurlのようなライブラリがあることを知りませんでした。教えて頂きありがとうございます。
    Windowsのライブラリの使い方あたりから調べてみようと思います。

    キャンセル

  • 2018/05/27 20:23

    今時、Cでコードを書くところがすくないじゃないかと思ったのですが、、、。組込みでもC++ を聞きます。

    キャンセル

checkベストアンサー

+2

こんにちは。

ネット上のサイトにある画像をダウンロードし、指定のフォルダに保存するといったものを考え、アプリ作成する報告をしています。

定番はヘッドレスブラウザを使うことと思います。
しかし、C言語とは無関係な世界です。C言語の学習にはなんの役にも立たないでしょう。

このような高度なことではなく、画像のURLを直接指定してそれをダウンロードするだけなら、libCurlを使うのも手です。
それでも、C言語の学習というよりはlibCurlの使い方の学習の面が強いでしょう。そして、socketをあまり学べないので意味がないかも知れません。

socketから学習する場合は、自力でsocketを使ってhttp getリクエストを発行してダウンロードするイメージになると思います。検索すると意外に解説記事がありました。それらをきちんと理解してプログラムできれば非常に力が付きそうです。
HTTP でファイルをダウンロードして保存する方法 Javaですが概念を把握できるかも。
[C言語] HTTPクライアントを作ってみる ダウンロード限定ではないですがC言語です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/27 20:15

    アプリ開発の経験も知識もなく、その為してしまった的外れな質問にも親切に回答していただきありがとうございます。
    教えていただいた情報からどう作っていくか、イメージを固めるところから始めていきたいと思います。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.84%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    さくらVPSの127.0.0.1

    さくらVPSにRailsアプリをCapistranoを使ってデプロイを試みたのですが、デプロイは成功した感じがするのですがどのアドレスを打ちこめばアクセスできるのかわからなくて困っ

  • 解決済

    チャットの受信の仕組み

    ブラウザで出来るチャットを、windowsアプリケーションにして タスクバーのアプリアイコンからチャット受信の通知が来るような仕様にしたいのですが、 チャットが受信する仕組みがよく

  • 受付中

    win32APIの複数クライアントについての質問です。

    win32APIでwinsockを利用しています。 サーバとクライアント1つずつであれば問題なく文字のやり取りができるのですが、 クライアントを複数にした場合のプログラムがわかり

  • 解決済

    JavaでSNSを作りたい!!

    このたびプログラミングでツイッター---のようなSNSを作ることになりました そこでローカルで通信できるプログラムを組み、IPアドレスとポート番号で通信ができることができまし

  • 受付中

    ソケット通信を使ったネット接続について

    ソケット通信を使ったネット接続について 自分はツイッターのようなsnsアプリを作っているのですが、 ネットを通じて、サーバーに接続通信をするために ソケットを利用した

  • 受付中

    Java: ネットワークプログラミング ローカルサーバー

    前提・実現したいこと Javaによるネットワークプログラミングの練習コードを書いています。 Server side , client side 双方にsocketを設定したつも

  • 解決済

    AWS デプロイ 500エラー になります!

    Railsで作成したサイトをAWSにデプロイし、いざIPアドレスで表示させようとした所500エラーになります。 あと一歩のところで1日が経過しました。この問題で考えられる原因

  • 解決済

    【AWS・Rails】nginxで(111: Connection refused)エラー。

     前提・実現したいこと Qiitaの記事を参考にしてデプロイに挑戦しています。 nginxを正しく設定してrailsアプリをunicorn経由で表示したいです。  バージ

同じタグがついた質問を見る

  • C

    3351questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。