人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

いま簡単なオンラインチャットシステムをC言語で作っています。1対1の通信は、私のパソコンと友達のパソコンで繋がるようにできました。そして次にレンタルサーバを借りてクライアント/サーバ形式で多人数チャットをしようと考えてます。
そこで分からないのですが、サーバの仕組みの事です。友達の方(データを受け取る側)をサーバに置いて動くようにと考えたのですが、どうやってサーバにファイルを置くのか分かりません。この場合実行ファイル(exe)をサーバに置くという事なんでしょうか?サーバ上に実行ファイルを置く方法が分かりません。
それともまったくやり方が間違っているのでしょうか?
クライアント/サーバ方法に関する基本的な知識が知りたいです。よろしくお願いします。

●質問者: simon4
●カテゴリ:コンピュータ インターネット
✍キーワード:C言語 exe たくや オンライン クライアント
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● hong7
●10ポイント

ふつうはftpです。http://www

◎質問者からの返答

早速のご返答ありがとうございます。当方ffftpを使ってホームページのデータを転送しています。それと同じ方法で

借りたサーバにチャットの受信側実行ファイルを転送して、チャット送信側がIPアドレスやパスワードを入力してサーバにアクセスする

という事でしょうか。でも分からないのがクライアントはどこからサーバの実行ファイルにアクセスするのでしょうか?

まずはFTPの基本的な仕組みの勉強をします。ありがとうございます。


2 ● hijk05
●25ポイント

チャットといってもCGIなんでしょうか?それともメッセンジャーみたいなものでしょうか?

◆メッセンジャーみたいなものの場合

レンタルサーバーでC言語をデーモンで実行できるところは高いのでお勧めしません。

誰かのマシンがサーバーになればOKです。

IPアドレスさえわかれば、通信できます。

ダイナミックDNSとかを利用すれば便利かもしれません。

vectorとかで同様のソフトがあふれてますので、参考にしてみてはどうでしょうか?

あと、レンタルサーバーはUNIX(LINUX、FreeBSD)の場合が多く、Windows用のEXEファイルは動作しません。

◆CGIの場合

C言語のCGIの動作を許しているところが皆無ですので、無理です。

http://q.hatena.ne.jp/answerIRC

◎質問者からの返答

ありがとうございます。

メッセンジャの様な物です。

ダイナミックDNSとはサーバプログラム支援ソフトのような物でしょうか、勉強してみます。

UNIXについて、私はVISTA環境にcoLinux-Ferora9をインストールしました、C/S環境を作るにはUNIXを使うのが一般的でしょうか?

現在VC++9にて製作中です。

CGIは予定してません。ありがとうございます。


3 ● pahoo
●30ポイント

クライアント=サーバ方式(C/S方式)のシステムでは、クランアント側に「クライアント・プログラム」が、サーバ側に「サーバ・プログラム」が必要になります。

ご質問のチャット・システムの場合、ご友人と1対1(pear to pear; P2P)で行っているプログラムの機能を以下のように分解して、クライアント・プログラムとサーバ・プログラムに構築し直す必要があります。


●クライアント・プログラム


●サーバ・プログラム


参考サイト

◎質問者からの返答

ありがとうございます。

参考サイト拝見します。

当方純粋なC言語を使いVC++にてコンパイルしています、前にネット検索でサーバについて調べていたときに思ったのですが

VBによるC/Sシステム構築の記事が大変多く見受けられました。ということは純粋CではなくVCを使ってプログラムを組んだ方が

メリットが多いということなのでしょうか?

また、将来的にはネットゲームを作りたいと考えていまして、VBとCは連携させることは可能なのでしょうか?

VC勉強してみます。

ありがとうございます。


4 ● くない / あしけ
●25ポイント

サーバーの種類によります。

仮想専用サーバーや自宅サーバーのように、自由に使えるサーバーであれば、デーモン(常駐起動ソフト)にして動作させればよいと思います。そちらのほうはよくわかりません。

ただ、多くのサーバーでは、Webサーバー(HTTP)としての機能しか使えないでしょう。その場合は、CGIという機構を経由します。

CGIは、ホームページのデータが要求されたときに、ファイルのデータのかわりに、実行ファイルを実行して、その実行が終了したあとにその結果を返す、という方法を使っています。

つまり、Webサーバー上にあるプログラムを起動するには、その実行ファイルをCGIで呼びだせるようにして、"http://ほげほげ/chat.cgi"のようにHTTP経由でアクセスする(プログラムからHTTPにアクセスする方法もあります)、というのが一般的だと思います。

CGIにはCGIの規格があるので、そのままのプログラムでは動かないでしょう。OSもWindowsでない場合が多いでしょうし。

参考までに、Perl言語でCGI用のプログラムを組む例をあげておきます。

http://www.tohoho-web.com/wwwcgi.htm

◎質問者からの返答

ありがとうございます。

リンク拝見します。

CGIは考えていませんでした。

前にUNIXでPerlを勉強したことがあります。Webサーバということは自分のホームページ上に

チャットシステムを運営するということですね。当方将来的にはオンラインゲームを作りたいと考えています。

Unix-Perl-CGIでWeb上でオンラインゲームが作れればCGIも考えてみたいです。

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ