• ベストアンサー

ソケットプログラミングって??

現在ソケットプログラミングを勉強していますが、いまいち利点がわかりません。これをつかって自宅サーバーとかって作るんでしょうか?ソケットプログラミングで何ができるんでしょうか?(自宅でやれることってあるのでしょうか?) お願いします。ちなみにLinuxを使ってCで打っています。

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

  • ベストアンサー
回答No.1

ネットワークプログラムが組めます。 メッセンジャーなど またはネットワークプログラムでも クライアントサーバプログラムも組めます。 今はやりのオンラインゲームはその良い例ですね。 ようはネットワーク上でデータをやりとりを するための仕組みです。 どんなことができるか作るかはアイディア次第で 今までにないものも作れると思います。

MASA_55_ku
質問者

補足

メッセンジャーが作れるんですが、すごいですね。ありがとうございます。自宅でサーバーを作るときにもこのソケットプログラミングが必要でしょうか?

その他の回答 (5)

  • moritan2
  • ベストアンサー率25% (168/670)
回答No.6

仕事で対戦ゲームのサーバーのプログラミングをしている者です。 対戦ゲームのサーバーはsocket利用の典型例だと思います。これが例えばwebサーバーやメールサーバーを作るのなら、apacheやpostfixなどよく出来たサーバーが世の中にはたくさんありますから、なにも自分でsocketのプログラミングをしなくてもいいわけですが、対戦ゲームサーバーは現時点では標準のプロトコルなどが存在するわけではありませんから、本当にやりたい事をしたいなら、サーバーは自分で書くしかありません。

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.5

利点欠点という問題ではないのですが。 ネットワーク系のプログラムを書くには、ソケットを使う以外に手段はありません(一部、ソケットではなくTLIという別の抽象化を使うOSもありますが)。ファイルを読み書きしたければファイルディスクリプタ(あるいは FILEポインタ)を使すしかないのと同じです。  ソケットサービスをすっ飛ばしてネットワークを直接操作しようとしても、結局「raw socket」という種類のソケットを使わないといけません。  UNIX系のOSではプロセス間通信もソケットを使うことになっているものがありますね。

  • gungnir7
  • ベストアンサー率43% (1124/2579)
回答No.4

ソケットっていうのは通信の基本インターフェースです。 通信のプロトコルもAsyncだとか色々ありますが、 ソケットはTCP/IPのインターフェースです。 それで、ソケットがなければTCP/IPの通信部分も自前で作成しないといけません。 とてもじゃないが、やることが増えすぎて大変です。 動作が保証されているソケットを使えば、 そういう下部組織のことは意識しないで済みます。 ソケットに限らず、コンピュータでもC言語でも 下部のことを意識しないで済む仕組みはいくらでもありますよ。

MASA_55_ku
質問者

お礼

ありがとうございます。いろいろとわかってきました。

回答No.3

>プログラム同士のデータの受け渡しは、ファイルで行う等の方法があります。 ソケットプログラムと同じようにお互いが起動していて 協調しあって動作させるならプロセス間通信が 一般的だと思いますよ。

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

データ通信を行うことができます。 これは、コンピュータ同士のデータ通信です。 1つのコンピュータないであれば、プログラム同士のデータの受け渡しは、ファイルで行う等の方法があります。従ってその場合は、ソケットプログラミングは(その方法でも可能ですが)必要ありません。ところが、コンピュータ外のプログラムと交信をする場合は、ソケットプログラミング以外に選択子はありません。今、あなたが、ここに質問し、ここに私が回答を書いていますが、この仕組みもソケットプログラミングで、作成されています。

MASA_55_ku
質問者

お礼

ありがとうございます。いろんなところに使われているんですね。