• 締切済み

ネットワークプログラミングの初歩

ネットワーク上で動くプログラムを作りたいと思い、いろいろ調べてみたのですが何からはじめたらいいのか分からない状態です。調べているとWinSockやTCP/IP等々いろいろ言葉が出てきて聞いたことはあるけど実際にはどれを使えばいいのか悩んでしまいます。 まずは以前に作ったオセロをLANで対戦できるようにしてみたいのですが、アドバイス等よろしくお願いします。 また、参考になるサイトがありましたら教えてください。 WindowsMe VC++6.0 SDK

みんなの回答

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.1

Windowsにおけるネットワークプログラミングの方法はいくつかあります。 ・DirectPlay ゲーム用API群であるDirectXの一角をなし、主にネットワークゲームの通信部分を実現する 下位APIとしてWinSockを利用している ・CSocketコントロール VisualC++のクラスライブラリであるMFCに含まれる通信コントロール 下位APIとしてWinSockを利用している ・WinSock Windowsネットワークの中核をなすAPI Windows95OSR2以降、WindowsNTSP3以降であればWinSock2.0が利用できる その他にもネットワーク機能を提供するライブラリはたくさんありますが、独自プロトコルを実装しようとする場合は前記の3つの内から選んだほうが良いでしょう。 WinSock2.0の教科書として「WinSock2.0プログラミング―Window Socket APIによるネットワークプログラミングのすべて」(江村 豊 監修 ソフトバンク ISBN4-7973-0688-2 )をお勧めします。 WinSockAPIの使い方、CSocketコントロールの使い方、ネットワークプログラミングの概念、注意点など必要事項が網羅されています。 監修しておられる江村さんはWindows上での通信ソフトの名作emTermの作者さんです。

eye209
質問者

お礼

WinSockから勉強してみたいと思います。書籍もお勧めしていただきありがとうございました。

関連するQ&A

  • ネットワークプログラミングについて

    今、僕はネットワークプログラミングを勉強中です 今日、linuxで教科書の例題レベルの簡単なサーバプログラムを作って それを実行させて windowsでwinsock2を用いてクライアントプログラムを作って 実行させて 同じLAN内の違うパソコンにメッセージを送るプログラムを作ったのですが なぜかconnectができません. 同じLAN内でも winsock2同士で作ったwindows同士では メッセージをうまく送れました. しかし windowsとlinuxの間だとどうしてもconnectができません なぜだか全くわかりません. windows同士, linux同士だとうまくいくようです. よろしくお願いします.

  • VB2008でネットワーク通信

    VB2008でネットワーク通信 今VB2008を使ってゲームを作ってます。 そこでPC同士をつないで対戦するようにしたいのですが 調べてみるとTCP/IPやWinsockなどが出てきました それがVB6.0のだったり、コードを入れてもうまくいきませんでした。 ちなみにゲームは五目並べで、チャット機能も入れたいと思っています。 ご教授お願いします。

  • 突然、ネットワークに接続できなくなりました。

    突然、ネットワークに接続できなくなりました。 ネットを参考にいろいろ試してみたのですが、まったくダメです。 大変、大変困っております。 どなたか、この症状を克服された方ご教授お願いいたします。 どうかよろしくお願いいたします。 ■環境 lenovo thinkcentre     WindowsXP SP2(社用のためUpdate不可)     有線ローカルネット接続     セキュリティソフト symantec Client Security AntiVirus ■症状 ネットワークに接続できない     ipconfig /all コマンドで「この要求はサポートされていません」といわれる     ipアドレスなど全く取得できません windows は通常起動はできるが、セーフモードでの起動ができない 起動がとても遅い     ファイヤーウォールは無効にしています(ONに設定するとTCP/IPのエラーになる) ■状態 ネットワークアダプタは認識されている(このデバイスは正常に動作していますと表示)     LAN 上の他の PC は正常に稼働 ネットワークの表示の中にネットワークアイコンはあります。    「システムの復元」はOFF になっていたため不可 再インストール用のCD-ROM はありません     ウイルスの検索で問題ありません、過去にも問題なし ■試してみたこと     TCP/IP の再インストール     レジストリ winsock, winsock2 の削除 + TCP/IP の再インストール     Sfc.exe システム ファイル チェッカー の実行(時間はかかったが、問題なし)        必要なサービスで停止されているものは無し     corega 無線LAN アダプタをインストールしてみるが、全く接続できず Emobile データカードをインストールしてもダメ         その他いろいろ どうか、皆様よろしくお願いいたします。                 

  • ネットワークプログラミングについて

    過去ログを検索してみて質問:socの秀和システム出版の「Javaネットワークプログラミング」に載っているクライアント・サーバ型のチャットプログラムについての質問がありました。 私も同じ本で学習しているのですが、過去ログの方の例では1台で実行した場合、2台でネットワーク経由で実行した場合両方とも成功していました。 このプログラムをコンパイルして実行してみてもサーバーに接続できませんと出ます。このプログラムを実行するにはどのような環境、コマンド等が必要でしょうか? 私が試している環境はJ2SDKでWindowXP一台でコマンドプロンプトでchatsv.javaとchatcl.java(アプレット)の両方をコンパイルし、chatsvを実行。chatclはHTMLファイルを作り、それを実行するとIPアドレスを指定画面が出るので指定します。通信はSocket通信です。WindowsのIPアドレス(自分)にはpingもしっかり通っています。 あと2台でネットワークを介した起動では、クライアントには上記のWindowsを、fedora core3を使ってサーバープログラムを起動。こちらも同様にchatsvを実行し、apacheにchatcl.htmlを組み込んでいます。windos側、fedora側から実行しても接続できません。こちらもwindowsからIPアドレスを直接指定するとチャットアプレットは見ることはできますし、pingも通ります。 長くなってしまいましたが、よろしくお願いいたします。

    • ベストアンサー
    • Java
  • ネットワークプログラミングで困っています。

    こんにちわ。 今度ネットワーク対戦型ゲームをJavaで作成することになり、現在、それに向けていろいろと勉強しています。その一環として、オンラインチャットのプログラムを文献から見つけてネット上で動かしてみようと思い、いざ実際にやってみました。自分はPCを二台持っていて、一台はASUS製のモバイルノート(UL20A)でOSはWindows7 Home Premium (64bit板)で、もう一台はDell製のホームノート?(Stdio)でOSはWidows Vista Ultimet (32bit版)です。実行したところ、Stdioの方では問題なく動くのですが、UL20Aの方では最後まで動きませんでした。swingを使っていて、画面までは出ますが、そこからネットワークにつなごうとすると停止します。 作成したプログラムは、最初に実行したときにサーバ名を決めてサーバを構築し、その後もう一度実行して、クライアントとなってサーバ名を入力し、その後ニックネームをつけてチャット部屋(?)に入るというものです。これだけですので一台でも一応実行可能です。 細かいプログラムは文献を参考にしていますので、申し訳ありませんがここでは割愛させていただきます。 ちなみに二台とも環境はjdk1.6.0_22で、綜合開発環境のeclipseを使っているのでプログラム自体にはミスはないと思います。そこは文献を参考にして、実際にStdioで動いているので多分大丈夫です。そして同じプログラムをUL20Aで動かそうとすると動かないのです。 さらに、知人のPCを借りて同じプログラムを起動してみたら起動しました。レッツノートのWindowsXP(32bit版)でした。 これらから推測するにどうやらUL20AのPC内の環境が原因ではないかと思っています。 実際にほかのネットワーク関係のプログラムを実行するとやはりUL20Aのみ実行できませんでした。ネットワークが関係ないものは問題なく動くのですが。 そこを調べようと思いいろいろと試行錯誤しましたが、いまいち解決策らしいものが見つからなかったので、この場を使わせていただきました。 個人的にはOSが64bit版である事になにか原因があるのでは?と思っています。 本番のゲーム作成までそこまで時間があるわけではなく、モバイルノートでネットワークプログラミングができないとなるとなかなかの痛手なので、こちらの道に精通している方がいらっしゃったらどうか助言ください。

  • ■Visual Studio 2010 購入について(主にVC++が欲

    ■Visual Studio 2010 購入について(主にVC++が欲しいです) 今、VB6.0で作ったチャット・ネットワーク対戦オセロ・自動お喋り・ お絵かき転送などの機能がある通信ソフトがあり、それをVC++に移植 したいと考えています。 それにあたって、どの Edition (?)がいいのか教えて欲しいです。 少しぐらい高くても、VBなどが付いてくるなら、Visual Studioの購入を 考えています。 質問1 (ヨドバシの店員さんが)VC++単体では販売してないと言ってました。 店員さんによるとVisual Studio 2010 Professional がお勧めだそうです。 そうであれば、Professional with MSDN Essentials とProfessional with MSDN のエディションがあるみたいですが、■どちら を買えばいいのでしょうか? 予算は余裕をみて、最悪の場合、15万円ですが… ■おおよその購入金額も教えて下さるとありがたいです。 質問2 http://www.microsoft.com/japan/visualstudio/products 上記 Webpage で、「with MSDN Essentials」というのが、いまいち意味が分かりません。 VB6.0の時は、MSDN=ヘルプファイルだと思ってました。違うのでしょうか? ■MSDNというのは厳密にいうと何を意味するのでしょうか? 質問3 ■ヘルプファイルについてくるサンプルコードは、エディションによって内容は 違うのでしょうか? 質問4 Visual Studio 2010は、VB、C++、C#、(MSDNサブスクリプションでは、更に SQLサーバー、OSのダウンロード権が付いてくる)が含まれると、インターネット で調べました。あっているでしょうか? 質問5 チャットソフトに、UDP や主に TCP/IP で、ファイル転送、音声通話などの機能を追加したい のですが、一番、使い慣れていて、参考書も持っている Winsock で作ろうと思っています。 (IP Messengerというソフトを参考に、winsockで作りたいのです。) (Winsock (2.0?)& Windows XP でも動くようにしたいです。■可能でしょうか?)  http://ipmsg.org/ しかし、2010では、新しいコンポーネント(?)を使うほうが主流で、 winsockは使わない流れみたいと店員さんは言ってました。 ■もしwinsockよりいい代替となるコンポーネント名があるなら、教えて頂けると 助かります。 それも含め、購入時の参考にしたいです。 (ヨドバシの店員さんに、詳細を質問するのは、ちょっと…疑問ですが、  それは置いておいて下さい。) どうか、よろしくお願いします。

  • ゲームプログラミングのネットワーク対戦

    毎回、お世話になっています。 開発環境:Visual Studio 2005 Visual C++ 開発言語:C/C++ + Win32API + DirectX9 現在、上記の環境・言語でゲームプログラムを作成中です。 そのゲームに、ネットワーク対戦を導入したいと思っています。 そこで質問なのですが、どのように実装すればよいでしょうか? 質問が非常に抽象的で申し訳ないのですが、まずは、DirectPlayやWinSockなどのライブラリの中で、何を使えばいいのか、をアドバイスしていただければと思います。 また、出来ましたら簡単に仕組みを解説していただければ幸いです。 その後、具体的な導入方法について自身で調べてみることにします。 通信の特徴として、 ・1vs1の通信対戦 ・一回のデータ量は少ないが、ほぼリアルタイムに送信 という感じです。 ネットワークプログラミングにはあまり触れたことがないこともあり未熟な身ですが、ご存知の方がいましたらご教授よろしくお願いします。

  • ネットワークプログラミングの本を教えてください

    お世話になります。 「ネットワークプログラミング」の良書を教えてください。 よろしくお願いします。 Cを本格的に勉強して1ヶ月で、やっと「独習C」が終わりました。 いまK&Rを読んでいます。アセンブリも勉強中です。 Linux は 自宅で centOS5 と XP を繋いで実験しています。 TCP/IP は解ります。 もっとも興味があるのはセキュリティなので、 いずれサーバサイドJavaをやりたいと思っています。 その前にもう少しみっちりとCをやろうと思いますが、 ゲームには興味がありません。 そこでネットワーク関係でやろうと思っています。 Windows/UNIX に関わらず、読まれて参考になった本をご紹介下さい。

  • winMeでのADSL接続

    WindowsMeでADSLに接続しようとしているのですが、うまくいきません。 PCはvaioのPCV-RX51で、はじめからLANポートがついているのですが、 「コントロールパネル」→「ネットワーク」のなかの 「現在のネットワークコンポーネント」というところに「TCP/IP」が出てきません。 追加しても、「TCP/IPなし」となってしまいます。 この場合どうしたらいいのでしょうか? はじめからLANポートがあるPCなので、もし出てくるとしたら「TCP/IP」とだけ出るはずですよね? マニュアルを読んでその通りにやったのですが、よくわかりません・・・。 ご回答よろしくお願いします!

    • ベストアンサー
    • ADSL
  • 自分の組んだプログラムと対戦させられるオセロ/リバーシはないでしょうか

    自分の組んだプログラムと対戦させられるオセロ/リバーシはないでしょうか? 現在、オセロのプログラムを書いているのですが、そのプログラムを戦わせる相手が居なくて困っています。 対戦結果を使って自作AIを成長させたいので、そこそこ強いリバーシのAIと、自分の組んだAIを対戦させる必要があるのですが、なかなかプログラム同士を対戦させる事のできるリバーシプログラムが見つかりません。 LAN経由対戦でも良いので、どこかに無いでしょうか?