アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (6件)

仕事で対戦ゲームのサーバーのプログラミングをしている者です。


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

利点欠点という問題ではないのですが。


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

ソケットっていうのは通信の基本インターフェースです。


通信のプロトコルもAsyncだとか色々ありますが、
ソケットはTCP/IPのインターフェースです。

それで、ソケットがなければTCP/IPの通信部分も自前で作成しないといけません。
とてもじゃないが、やることが増えすぎて大変です。

動作が保証されているソケットを使えば、
そういう下部組織のことは意識しないで済みます。

ソケットに限らず、コンピュータでもC言語でも
下部のことを意識しないで済む仕組みはいくらでもありますよ。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/09/10 22:21

>プログラム同士のデータの受け渡しは、ファイルで行う等の方法があります。


ソケットプログラムと同じようにお互いが起動していて
協調しあって動作させるならプロセス間通信が
一般的だと思いますよ。
    • good
    • 0

データ通信を行うことができます。


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

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

お礼日時:2006/09/10 22:19

ネットワークプログラムが組めます。


メッセンジャーなど
またはネットワークプログラムでも
クライアントサーバプログラムも組めます。
今はやりのオンラインゲームはその良い例ですね。

ようはネットワーク上でデータをやりとりを
するための仕組みです。

どんなことができるか作るかはアイディア次第で
今までにないものも作れると思います。

この回答への補足

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

補足日時:2006/09/10 22:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!