いま簡単なオンラインチャットシステムをC言語で作っています。1対1の通信は、私のパソコンと友達のパソコンで繋がるようにできました。そして次にレンタルサーバを借りてクライアント/サーバ形式で多人数チャットをしようと考えてます。

そこで分からないのですが、サーバの仕組みの事です。友達の方(データを受け取る側)をサーバに置いて動くようにと考えたのですが、どうやってサーバにファイルを置くのか分かりません。この場合実行ファイル(exe)をサーバに置くという事なんでしょうか?サーバ上に実行ファイルを置く方法が分かりません。
それともまったくやり方が間違っているのでしょうか?
クライアント/サーバ方法に関する基本的な知識が知りたいです。よろしくお願いします。

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:2009/02/07 00:19:15
  • 終了:2009/02/08 11:34:26

回答(4件)

id:hong7 No.1

hong7回答回数157ベストアンサー獲得回数52009/02/07 00:26:31

ポイント10pt

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

id:simon4

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

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

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

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

2009/02/07 01:14:38
id:hijk05 No.2

hijk05回答回数1307ベストアンサー獲得回数232009/02/07 05:47:45

ポイント25pt

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

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

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

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

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

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

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

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

◆CGIの場合

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

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

id:simon4

ありがとうございます。

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

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

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

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

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

2009/02/07 12:07:06
id:pahoo No.3

pahoo回答回数5960ベストアンサー獲得回数6332009/02/07 07:25:55

ポイント30pt

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

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


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

  • ログイン:サーバへ確認
  • ログアウト:サーバへ確認
  • メッセージの入力・送信:キーボードからメッセージを受け取りサーバへ送信
  • メッセージの受信・出力:サーバからメッセージを受け取りディスプレイに表示

●サーバ・プログラム

  • ユーザー管理:ログインID、パスワードの登録・更新・削除
  • ユーザー・ログイン:クライアントからログイン情報を受け取り、正規のユーザーであることを認証した後、アクティブユーザーとして登録
  • ユーザー・ログアウト:アクティブユーザーをログアウトさせる
  • メッセージの配信:クライアントからメッセージを受け取り、全クライアント(ログイン中のアクティブユーザー)へメッセージを配信する
  • 必要に応じてログイン/ログアウトやメッセージのログをとる

参考サイト

id:simon4

ありがとうございます。

参考サイト拝見します。

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

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

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

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

VC勉強してみます。

ありがとうございます。

2009/02/07 12:26:22
id:qnighy No.4

くない / あしけ回答回数19ベストアンサー獲得回数12009/02/07 11:43:02

ポイント25pt

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

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

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

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

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

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

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

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

id:simon4

ありがとうございます。

リンク拝見します。

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

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

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

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

ありがとうございます。

2009/02/07 12:50:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません