• ベストアンサー

ネットワークプログラムをどこから勉強するか

ネットワークプログラミングを勉強したいプログラマーの初心者なのですが、どこから手をつけていいのか悩んでいます。 具体的にネットワークプログラムを習って何がしたいのかというと、2台間のPCの間でデータを受け渡ししたいのです。受け渡すデータは変数を受け渡ししたいです(他にも色々したいことはあるけどあまりよくわからないので><)。 言語はできればCやC#などがいいですが、あまりこだわっていません。 もしかしたら結構的外れなことを言ってるかもしれませが、様は勉強をしていって最終的には2台間のパソコンの間でデータを受け渡しできるようになるようなサイトや本、又は方針などを、知っていれば教えていただきたいです。  正直かなり抽象的な質問ですが、御回答をよろしければおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • OKbokuzyo
  • ベストアンサー率43% (130/296)
回答No.2

私の経験から言えば「プログラミングをやったことがある」程度では 1冊本を読んだくらいで簡単に理解できる分野ではないです。 とはいえ、なにかしらしなければ先には進めないので ネットワークプログラミングに関する書籍は多数出ていますから まずは書店に足を運んでどれがいいかご自身でよく吟味した方がいいと思います。 言語がCがよければ、確か「猫でもわかる~」シリーズはCで解説されていたと思います。 http://www.amazon.co.jp/%E7%8C%AB%E3%81%A7%E3%82%82%E3%82%8F%E3%81%8B%E3%82%8B%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Neko-%E7%B2%82%E4%BA%95-%E5%BA%B7%E5%AD%9D/dp/4797323604 ネットワークプログラミングはソケットを使うのが一般的ですが 質問者様がもしその辺の知識に疎いのであれば 現存するネットワーク技術も同時に勉強した方が理解が深まると思います。 その辺の勉強には、なぜシリーズの「ネットワークはなぜつながるのか」が私のオススメです。 http://www.amazon.co.jp/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A4%E3%81%AA%E3%81%8C%E3%82%8B%E3%81%AE%E3%81%8B-%E7%AC%AC2%E7%89%88-%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84TCP-IP%E3%80%81LAN%E3%80%81%E5%85%89%E3%83%95%E3%82%A1%E3%82%A4%E3%83%90%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98-%E6%88%B8%E6%A0%B9/dp/4822283119/ref=sr_1_1?ie=UTF8&s=books&qid=1216825089&sr=1-1 >>2台間のPCの間でデータを受け渡ししたいのです。 Javaですが、下記URLではネットワークプログラミングの基本を紹介しています。 http://www.hellohiro.com/socket.htm 最近ではゴリゴリと自分たちで作るばかりでなく、 プログラミングの手間や信頼性を確保するために 既存のライブラリやフレームワークを使うケースが増えています。 どちらかというと、こっちを知っている方が実務では役立つかもしれません。 あと、データを送るくらいだとさほど理解せずとも簡単にできてしまいますので とりあえずの目標としては、FTPサーバとFTPクライアントを自分で作ってみるくらいが 難易度的にもちょうど良いのではないでしょうか。

lain_003
質問者

お礼

すべてのサイトを見させていただきました。たくさんの情報ありがとうございますm(__)m とりあえず「C#で始めるネットワークプログラミング」という本があったので、それから始めようかと思います。 ネットワークプログラム・・・難しそうですががんばります^^ ありがとうございました。

その他の回答 (1)

  • equinox2
  • ベストアンサー率48% (321/660)
回答No.1
lain_003
質問者

お礼

ありがとうございます。 参考にさせていただきます。

関連するQ&A

  • 新しく勉強したいのですが・・・

    将来、プログラマー・SEなどを目指したいのでC言語を勉強しようと思うのですが、プログラミング初心者でも分りやすい、C言語勉強用の本、よい勉強の方法などあったら教えてください。 よろしくお願いします。

  • 言語の勉強についてアドバイスをお願いいたします

    コンピューターのことを深く知りたくて、1年ほど前に一番興味のあったネットワークの勉強から始めました。 その結果、関心はネットワーク → セキュリティ → Webプログラミングに移りました。 言語の入門書としてC、Java、C++、Perl、JavaScriptを10冊ほど、HPではアセンブラも読んでみました。 プログラムの思想らしきものは解ったつもりですが、コードを読んでもそれが関数なのか、 作者の造語の変数なのか判断に迷う程度から抜け出せません。 これではいけないと思って、Pealに焦点を絞ろうと本屋(地方です)に行きましたが、 ラマやラクダどころかPealの本は1冊も置いてありませんでした。 PHPの本はたくさんありました。 ここのBBSを見ても、PerlよりもPHPの方がにぎわっています。 『日経ソフト』もPHPの連載が始まり、来月はRubyの特集です。 そこでPerlをやめて言語の勉強の順序を次のようにしようと思っています。 Ruby(併行してHTMLとJavaScript)   ↓  Java → C → PHP → Perl まず『プログラミングRuby 第2版 言語編』とkeisukeさんのサイトで勉強するつもりです。 ネットワークの勉強をまったくの我流でやったので、ずいぶん遠回りをしてしまいました。 そこで言語の勉強について諸先輩方にアドバイスをいただけたらと思います。 方針、本、サイトなど何でも結構です。よろしくお願いいたします。 毎月読んでいる月刊誌は『日経ソフトウエア』『日経リナックス』『ネットワークマガジン』です。

  • ネットワークプログラミングを勉強しようとしているのですが。

    プログラミング初心者です。 C言語でWindowsプログラミングを一応学び、それを利用してゲームを作るのと平行してネットワークも勉強しようと思っています。 使おうとしている書籍は"UNIXネットワークプログラミング入門"という書籍で、初めてネットワークプログラミングを勉強しようとしています。 そこでその本の第二章(p32)のチャットプログラムを動作させようとしたのですがうまくできません。ソースコードはhttp://www.gihyo.co.jp/books/support.php/4-7741-1754-4 に置いてあるフォルダのchap2というフォルダにあるコードです。 まずcygwinでサーバのプログラムを動作させてから、cygwinをもう一つ起動させてそちらでクライアントのプログラムを動作させればいいと書いてあると「思う」のですが、動作しません。クライアントのプログラムを動作させても「gethostbyname: Operation not permitted」というメッセージが出て終了してしまいます。 もし、同じ本を使ったことがある方、またはそうでなくても超初心者がしてしまうような間違いや手順足らずなことなどに心当たりがあれば教えて下さい。

  • ネットワークプログラミングを勉強しようとしているのですが。

    プログラミング初心者です。 C言語でWindowsプログラミングを一応学び、それを利用してゲームを作るのと平行してネットワークも勉強しようと思っています。 使おうとしている書籍は"UNIXネットワークプログラミング入門"という書籍で、初めてネットワークプログラミングを勉強しようとしています。 そこでその本の第二章(p32)のチャットプログラムを動作させようとしたのですがうまくできません。ソースコードは​http://www.gihyo.co.jp/books/support.php/4-7741-1754-4​ に置いてあるフォルダのchap2というフォルダにあるコードです。 まずcygwinでサーバのプログラムを動作させてから、cygwinをもう一つ起動させてそちらでクライアントのプログラムを動作させればいいと書いてあると「思う」のですが、動作しません。クライアントのプログラムを動作させても「gethostbyname: Operation not permitted」というメッセージが出て終了してしまいます。 もし、同じ本を使ったことがある方、またはそうでなくても超初心者がしてしまうような間違いや手順足らずなことなどに心当たりがあれば教えて下さい。

  • プログラム言語の特徴(得意・不得意)について

    各コンピュータ言語の特徴(得意・不得意)を教えてください。 ネットワークプログラミングに関して知りたいので、それに 関連する言語に関して教えていただければ幸いです。 この質問の背景を以下で説明したいと思います。私はネット ワークプログラミングに関しては素人なので、質問自体が 的外れの点もあるかもしれませんが、どうかご了承いただき、 私の言わんとすることを汲み取ってご回答いただければ 幸いでございます。(知識に欠けている中で、的確な質問 をすること自体が難しいので、どうかご理解ください。) 私は以前に機械系のエンジニアをしておりました。そのため、 プログラミングは専門ではありませんが、ハードウェアの 制御のプログラム(例えばモーター制御や、DI/DO、AI/AO、 CCDからの画像取得など)を書いた経験はあります。 そのときに、もともとCでプログラムを作成しておりま したが、マルチスレッドプログラミングでかなり苦戦 しました。専門書を買ってきてその通りにプログラミング してもうまく動作しませんでした。散々悩んだ挙句、 ハードウェアに特化したプログラミング言語である LabVIEWでプログラミングをしてみると、マルチ スレッドもタイミングも何も考えずにプログラミン グができました。今まで何ヶ月も悩んでいた問題が 一瞬にして解決しました。 このとき感じたのは、プログラミング言語には 得意・不得意があって、開発したいアプリケーション によって、プログラミング言語を選択するのが 効率的なのかなあということでした。 よく、どんな言語でも、極めればどんなことでも できるという人がいます。確かにCなんかは、 どんなこともできるのではないかと私も思います。 ただ、上述の私の例のように、プログラミング 言語毎に、得意・不得意があったり、すでに ある機能に対してそれを実現するパッケージが 存在する言語があったりして、実質的に作業 効率を考えると、実現したい機能(アイデア) に応じて、それに適したプログラミング言語が 決まるような気がしています。 そこで、今私はネットワークプログラミングの 勉強をほぼゼロから始めようと思っています。 ネットワークプログラミングで使用される言語 はいろいろありますが、それぞれの特徴 (得意・不得意)あるいは、それに適した アプリケーションの種類などを、大まかに まとめることはできませんでしょうか。 例えば、前述の私の例で言いますと、 C: 自由度があって、様々な設定ができるが、 めんどう。 LabVIEW: マルチスレッドやタイミング などを考えずに簡単にプログラミングできる が、タイムクリティカルな処理はCで記述 してインポートする必要がある。 こんな感じにネットワークアプリケーションに 関して分類できると、初心者にとっては とっつきやすく、こういうソフト開発を したいからこの言語を勉強してみようと なります。 また、上述の例のように、ネットワークプログ ラミングにおいても、得意な部分のパッケージ をインポートしてつなぎ合わせるような プログラミングはあるのでしょうか。 果たして私の意図がうまく伝わったか分かり ませんが、ご回答いただけましたら幸いです。

  • プログラム言語って・・・

    はじめまして プログラム言語を勉強したいと思っているのですが、何を勉強したらよいのでしょうか? JAVAとかCとかVBとかCGIとかいろいろありますが、何を勉強したらいいのかわかりません・・ 社会人なのでPCスクールに通う時間もないし金銭的にもそこまで余裕がないので本を買って独学しようと思っています。 巷の求人誌を見るとプログラマーは引っ張りダコです、プログラミングに関しては全くのド素人です、 以前、知人に尋ねたら「何を作るかによって使う言語がちがってくる」と言ってましたがイマイチよくわかりませんでした、 JAVAとかHTMLとかXMLはネットに関する言語だということはわかりますがそれ以外のVBとかCとかC++とかCOBOLとかは何に使うのですか? また今から時代の将来性を考えると、私のようなまっさらの素人は何を勉強したらよいでしょうか? オススメの書籍やサイトが御座いましたら教えて下さいマセ。。

  • 初めて自分で作ったプログラムは?

    現在C言語を勉強しているものです。 これからほかの言語も勉強していくつもりです。 C言語はプログラミングの基本だと思ってます。 最終的に物理的シミュレーションやCGゲームを作ろうと考えています。 そこで質問です。 (1) 皆さんが初めて勉強したプログラミング言語は何ですか。? (2) その言語を使って初めて自分で考えて作ったプログラムは何でしたか? その時の心境とかできた後の感想とかも教えていただけると嬉しいです。 (うれしかった、がっかりした、等々)

  • 働くのに必要な技術について

    こんばんは。長文ですいません。 自分は情報系の専門学校1年です。今は少ししか言語(c、html)を学んでいませんが、プログラムを組む事が好きなので、将来はプログラマとして働きたいと思っています。ですがまだどんなプログラマになりたいか分からず、何を学ぶべきか混乱してしまいました。 学校では「学生のうちに色々な技術を学んだ方が良い」、「技術者として働くなら最低限習得する技術が多くある」と聞きました。ですので自分なりに調べてみましたが、ネットワーク、プログラミング言語、セキュリティ等多くありすぎて何をすべきか分からなくなってしまいました…。今は学校で学んだ言語などを復習していますが、それだけではつまらないし不安もあります。 ですので、どの様な技術者(プログラマ)でも、こういう技術・知識はある方が良いと思うものがありましたら、教えていただけないでしょうか?抽象的な質問で申し訳ありませんが、どなたか教えてくださると大変参考になります。長々と失礼しました、よろしくお願いします。

  • デザイナーをやめてプログラムをやれと言われたら

    webデザイナーです。 もし、webデザイナーの仕事をしていて、デザインが好きで、でも一流とは言えなく、プログラミングができないような人に質問です。 もし、会社でデザインの仕事の需要がなくなり、 これからは、ネットワークやプログラミング中心の仕事ばかりになるから、 デザインの勉強はしなくていいから、これからはそっちの勉強をして。 と、言われたら、どうしますか。 C言語やMYSQLなどの勉強を一から始めますか? それともデザインの仕事がある会社に転職しますか?

  • ゲームを作るためのスクリプト言語の勉強について。

    ゲームを作るために、プログラミングについて勉強を始めたいと思っている者です。 またDXライブラリやUnityなど比較的高難易度なツールを使っているわけではなく、RPGツクールやMMF2など初心者向けのツールを使っています。 RPGツクールやMMF2の初歩的な扱いには大分慣れてきたと思うので、変数を使ってより複雑なゲームを作りたいと考えているのですが、いまひとつ変数について理解できず、アルゴリズムもよくわかりません。 色々なサイトを調べたところ、いきなりC言語などのプログラミング言語から入るよりも、Rubyなどのスクリプト言語から勉強したほうがとっつきやすいし比較的簡単だという話だったので、スクリプト言語を勉強したいと思っているのですが、何かおすすめの言語とかはありますか? 今現在は、lua、Rubyのどちらにするかで悩んでいます。おすすめの参考書などありましたら教えてください。 またスクリプト言語の勉強はRPGツクールやMMF2といったツールの変数やアルゴリズムを理解するのに役立つのでしょうか? もし大して役に立たないということであれば、何か効果的な勉強法などありましたら教えていただけると嬉しいです。 ご回答、よろしくお願いします。

専門家に質問してみよう