合計 昨日 今日

アバター
Dixq (管理人)
管理人
 
記事: 1552
登録日時: 2010年10月12日(火) 20:16
お住まい: 北海道札幌市
日記: 日記を見る (570)
日記
- 12月 2017
ボーナスで自社製品を買う (2)
   2017年12月10日(日) 20:17
玉藤製と自宅製 (9)
   2017年12月03日(日) 22:01

+ 11月 2017
+ 10月 2017
+ 9月 2017
+ 8月 2017
+ 7月 2017
+ 6月 2017
+ 5月 2017
+ 4月 2017
+ 3月 2017
+ 2月 2017
+ 1月 2017
+ 12月 2016
+ 11月 2016
+ 10月 2016
+ 9月 2016
+ 8月 2016
+ 7月 2016
+ 6月 2016
+ 5月 2016
+ 4月 2016
+ 3月 2016
+ 2月 2016
+ 1月 2016
+ 12月 2015
+ 11月 2015
+ 10月 2015
+ 9月 2015
+ 8月 2015
+ 7月 2015
+ 6月 2015
+ 5月 2015
+ 4月 2015
+ 3月 2015
+ 2月 2015
+ 1月 2015
+ 12月 2014
+ 11月 2014
+ 10月 2014
+ 9月 2014
+ 8月 2014
+ 7月 2014
+ 6月 2014
+ 5月 2014
+ 4月 2014
+ 3月 2014
+ 2月 2014
+ 1月 2014
+ 12月 2013
+ 11月 2013
+ 10月 2013
+ 9月 2013
+ 8月 2013
+ 7月 2013
+ 6月 2013
+ 5月 2013
+ 4月 2013
+ 3月 2013
+ 2月 2013
+ 1月 2013
+ 12月 2012
+ 11月 2012
+ 10月 2012
+ 9月 2012
+ 8月 2012
+ 7月 2012
+ 6月 2012
+ 5月 2012
+ 4月 2012
+ 3月 2012
+ 2月 2012
+ 1月 2012
+ 12月 2011
+ 11月 2011
+ 10月 2011
+ 9月 2011
+ 8月 2011
+ 7月 2011
+ 6月 2011
+ 5月 2011
+ 4月 2011
+ 3月 2011
+ 2月 2011
+ 1月 2011
+ 12月 2010
+ 11月 2010
+ 10月 2010
フォロー
カテゴリー
日常
1 記事

オンラインゲームを作る (part.3)

パーマリンクby Dixq (管理人) on 2011年6月29日(水) 23:32

皆様前回の日記ではお世話になりました。
お陰様で良いデータが集まりました!

さて、大体先日紹介した本は読めました。
本格的なオンラインゲームを突然作ろうとすると挫折すると思ったので、
まずはハンゲームとかでよくあるロビーを作ることにしました。(記念すべき(?)制作一日目)

目指すロビーは各部屋に入る前に待機するような場所で、ログインしている人の名前が表示され、各自チャットで話が出来るというもの。

当然ながら、サーバーで必須なのは沢山の人と同時に連絡が取れること。
今日はクライアントが好きなタイミングでサーバーにアクセスし、メッセージを各クライアントから送ってサーバーで全て表示する仕組みを作りました。

画像

左側がサーバー、右にあるのがクライアント。
クライアントは1000個位まで同時に処理可能。

メッセージがサーバーに届いたらサーバーはブロードキャストを行わないといけないので
受信するとブロードキャストするところまで作りました。

また、独自のプロトコルも作りました。
2バイト…オペコード
2バイト…続くバイト数
nバイト…オペランド
オペコードには
 ・認証要求
 ・ログイン要求
 ・ログアウト要求
 ・チャット文章送信
 ・対応バージョン問合せ
 ・エラー
 ・返答要求
など色々あります。

この辺は特に本に書いてないので手さぐりでやっていこうと思います。
明日は勉強会で遅くなるし、金曜日はダーツ行くから・・次の更新は土曜日あたりかな?
最後に編集したユーザー Dixq (管理人) [ 2011年6月29日(水) 23:34 ], 累計 1 回

コメント数: 3 閲覧数: 28660
コメント

Re: オンラインゲームを作る (part.3)

パーマリンクby やっくん on 2011年7月01日(金) 02:44

このようなプロトコルはアプリケーション層にあたるんですよね?

<追記>
私も、複数人対応のメッセージを受信するだけのサーバできました!(完成:朝6時50分(笑”)
select関数でタイムアウト設定せずにブロック状態に陥ったりという罠にはまってました。

最終的には本に書いてることを参考に、サーバ側でselect関数を2度使ったんですが、キューさんはどのようにされましたか?

使用箇所は
・クライアントの接続確認
・メッセージ受信
です。
最後に編集したユーザー やっくん [ 2011年7月01日(金) 06:56 ], 累計 1 回
アバター
やっくん
 
記事: 5
登録日時: 2010年10月13日(水) 16:58
お住まい: 長崎県長崎市
日記: 日記を見る (9)

Re: オンラインゲームを作る (part.3)

パーマリンクby やっくん on 2011年7月01日(金) 17:28

ネットワーク専門の教授に良い本が無いか伺ったところ、此方の本を勧められました。
『UNIX NETWORK PROGRAMMING』
<日本語版>
日本語版

英語版は借りましたが、日本語版は図書館に注文しているのでいずれスキャナで取りこむつもりです。
法的にも問題無いみたいなので興味ありましたら渡しますがどうされます?
最後に編集したユーザー やっくん [ 2011年7月01日(金) 17:37 ], 累計 2 回
アバター
やっくん
 
記事: 5
登録日時: 2010年10月13日(水) 16:58
お住まい: 長崎県長崎市
日記: 日記を見る (9)

Re: オンラインゲームを作る (part.3)

パーマリンクby Dixq (管理人) on 2011年7月02日(土) 10:50

> サーバ側でselect関数を2度使ったんですが、キューさんはどのようにされましたか?

selectは一度だけ呼べば良いと思いますよ。
fd_set型に全部情報入りますから。
後に続く3つの引数を用途によって使い分けます。

> ネットワーク専門の教授に良い本が無いか伺ったところ、此方の本を勧められました。

何故そんな本を・・。
ネットワーク系の本なら和書沢山ありますよ。
まぁ英語が日本語と同じように読めるならそれでもよいのかもしれませんが。

> 法的にも問題無いみたいなので興味ありましたら渡しますがどうされます?

ありがとうございます。
私は必要ないのでよいですよ、わざわざどうもです。
アバター
Dixq (管理人)
管理人
 
記事: 1552
登録日時: 2010年10月12日(火) 20:16
お住まい: 北海道札幌市
日記: 日記を見る (570)

オンラインデータ

登録ユーザー: みけCAT