日本华人论坛 紧急求救。C语言作业。TCP/IP通信型クイズ出題ク



日本 - 朋友们你们好。我是来寻求帮助的。老师出了C语言的一道通信题,我实在不会做。
其实题挺有意思的。可惜我没悟出它的解法。
希望高手们可以抽空帮我看一下,小妹在三感谢。以下是日语解释。

課題
􀂄 次の要件と次ページ以降の通信規定を満たすTCP/IP通信型クイズ出題クライアントプログラムを作成せよ
􀂋サーバ(作成不要)
􀁺 認証されたユーザに対しクイズを出題,5問正解したら秘密のメッセージを送信する
􀁺 すべての状態において,クライアントからの要求に対して受動的に動作を行う
􀂋クライアント
􀁺 クイズサーバに対応したユーザインタフェースを実現する

通信規定(1/7)
􀂄 状態の規程
􀂋サーバには以下の状態が存在
􀁺 ユーザ名を受け付ける状態(状態1)
􀁺 パスワードを受け付ける状態(状態2)
􀁺 クイズ出題を受け付ける状態(状態3)
􀁺 解答を受け付ける状態(状態4)
􀁺 秘密のメッセージの送信を受け付ける状態(状態5)
􀂄 クライアントでは,サーバがどの状態にあるかを判断して,必要なデータ送信を実施すること

通信規定(2/7)
􀂄 ユーザ名受付状態(状態1)
􀂋 ユーザ名として,自分の学籍番号(CD付)を使用すること
􀂋 例: p010123(アルファベットは小文字)
􀂋 ユーザ名の送信には,「USER <ユーザ名>」の形式を使用すること
􀂋 正しいユーザ名が入力された場合には,文字列“OK”を返し,パスワード受付状態(状態2)に遷移すること
􀂋 誤ったユーザ名が入力された場合には,文字列“NG”を返し,状態を遷移しないこと
􀂋 「USER」以外のコマンドが入力された場合には,文字列“ERROR”を返し,状態を遷移しないこと

通信規定(3/7)
􀂄 パスワード受付状態(状態2)
􀂋 パスワードとして,自分の学籍番号(CD付)を反対から書いた文字列を使用すること
􀂋 例: 321010p
􀂋 パスワードの送信には,「PASS <パスワード>」の形式を使用すること
􀂋 正しいパスワードが入力された場合には,文字列“OK”を返し,クイズ出題受付状態(状態3)に遷移すること
􀂋 誤ったパスワードが入力された場合には,文字列“NG”を返し,ユーザ名受付状態(状態1)に遷移すること
􀂋 「PASS」以外のコマンドが入力された場合には,文字列“ERROR”を返し,状態を遷移しないこと

通信規定(4/7)
􀂄 クイズ出題受付状態(状態3)
􀂋 クイズの正解数はサーバ・クライアント双方で保持しておくこと
􀂋 クイズの出題要求には,「QUIZ <現在の正解数>」の形式を使用すること(すなわち,正解数はクライアントでも保持しておく必要がある)
􀂋 正しい正解数が入力された場合には,クイズを出題(すなわち,クイズの文章を送信)し,解答受付状態(状態4)に遷移すること
􀂋 誤った正解数が入力された場合には,文字列“NG”を返し,状態を遷移しないこと
􀂋 「QUIZ」以外のコマンドが入力された場合には,文字列“ERROR”を返し,状態を遷移しないこと

通信規定(5/7)
􀂄 解答受付状態(状態4)
􀂋 解答の送信には,「ANSR <答え>」の形式を使用すること
􀂋 正しい解答が入力された場合には,文字列“OK”を返し,正解数を1増加させること
􀂋 間違えた解答が入力された場合には,文字列“NG”を返すこと
􀂋 正解数が5になった場合には,秘密メッセージ受付状態(状態5)に遷移すること.それ以外の場合にはクイズ出題受付状態(状態3)に遷移すること
􀂋 「ANSR」以外のコマンドが入力された場合には,文字列“ERROR”を返し,状態を遷移しないこと

通信規定(6/7)
􀂄 秘密メッセージ受付状態(状態5)
􀂋 秘密のメッセージは「GET MESSAGE」にて要求すること
􀂋 正しいコマンドが送られてきた場合には,秘密のメッセージ文章を返し,状態を遷移しないこと.
􀂋 引数部に誤りがある場合(すなわち「MESSAGE」以外の文字列を受信した場合)には,文字列“NG”を返し,状態を遷移しないこと
􀂋 「GET」以外のコマンドが入力された場合には,文字列“ERROR”を返し,状態を遷移しないこと

通信規定(7/7)
􀂄 終了メッセージ
􀂋 サーバは「QUIT」を受信すると“GOOD BYE”を返し,どの状態にいても接続を切断すること
􀂋 クライアントは「GOOD BYE」を受信すると,プログラムを終了する(とよい)
クライアントの条件
􀂄 クライアントでは通信規定に基づき的確なユーザインタフェースを実現すること
􀂋 「ユーザ名を入力して下さい→」の表示
􀂋 サーバからのメッセージを受信したときには,それをそのまま表示するのではなく適当な文章に変換して表示
􀂋 NG → 「パスワードが違います」など
􀂄 必要な状態を記憶しておくこと
􀂋 クイズ正解数は利用者が覚えておくのではなく,クライアントソフトで自動的に記憶可能である
􀂋 クライアントによる支援クイズサーバ簡易版とクライアントを提供します.

圧縮にはzipを利用し,sample_oli_utf8.zipとしてあります.
Linux環境で解凍するには,以下のコマンドを実行します.
unzip sample_oli_utf8.zip
これにより,実行ファイル「quiz_server」と「client」が取り出せます.
インタフェースは組み込まれていません.
(なお,同名ファイルがあれば上書きされる恐れがあります.注意して下さい.)
このままでは実行許可がありませんので,次のコマンドにてパーミッションを変更して下さい.
chmod u+x quiz_server
chmod u+x client

● 実行環境
クイズサーバプログラム「quiz_server」は,Linux環境でコンパイルされた実行型ファイルです.
Linux上でのみ動作します.漢字コードは,UTF-8です.

● 実行方法
ポート番号は起動時に指定するようにしてあります.実行する場合には,
./quiz_server 12345
のように,第1引数にポート番号を指定して下さい.起動後は,第2回課題で指定したプロトコルにしたがって動作します.

クライアントのほうは,
./client 127.0.0.1 12345
のように,第1引数にIPアドレス,第2引数にポート番号を指定して下さい.なお,サーバと同じマシンでクライアントを起動する場合には,IPアドレスを127.0.0.1(ローカルアドレス)とすれば動作します.

● アカウント
ユーザ名とパスワードには,以下の4種類が登録されています.
ユーザ名 パスワード
test1  1tset
test2  2tset
test3  3tset
test4  4tset

● クイズ出題
プログラムを簡略化するため,15問のみ用意してあります.
● 秘密のメッセージ
ユーザ名 メッセージ
test1  secret_message1
test2  secret_message2
test3  secret_message3
test4  secret_message4

提供sample_oli_utf8.zip sample_oli_utf8.zip (12.05 KB, 下载次数: 0) 2010-4-18 18:00 上传 点击文件名下载附件
下载积分: 元气 1 点
,里面有可以执行的server ,client , 还有需要改变的client.c

上面说的挺麻烦,其实依我理解,要做的client.c需要做的改变是,
没改之前,需输入USER test1,改后,就变成提问的形式,ユーザ名を入力して下さい→test1
没改之前,需输入PASS 1tset,改后,就变成提问的形式,パスワードは?→1tset
等。。

上面说的有点乱,小妹QQ:75748086。。随时恭候您的疑问和指导。。
由于作业很重要,哪怕是一点点思想也好。
拜托传授。麻烦烦您了。再次致以最崇高的谢意。。。

评论
太长了,估计没人有那么多时间帮你了,MM。同情下!
日本 Japan
 ·日本留学生活 求个大阪合租
·日本留学生活 自家房招租求
·日本留学生活 东京地区出9成新lv钱包
·日本育儿教育 孩子从国内过来如何学习日语
·日本育儿教育 明年四月横滨招月嫂
·日本育儿教育 请问咋让娃突破识字关?感谢分享中文共读和学习经验的妈妈
 ·中文新闻 东区明星迈克尔·格列柯,53 岁,将在第一次出生两年后第二次
·中文新闻 《爱情岛》明星卡米拉·瑟洛和杰米·朱维特在透露即将迎来第三

日语考试

旅行管理

华人网出套资格考试用书,课本4本,习题6本,CD课时9张,16小时左右。7千出。位置东京,上板桥车站附近,东武东上线上,池袋,山手线上交易。微信qzq20198 评论 1111111 ...

日语考试

募集一起备考FP考试

华人网情况介绍‘ 本人打算明年1月先考3级 之后考2级想找小伙伴一起学习。 我滴情况是,社会人30代前半,人品端正热爱学习和户外运动 想持续保持学习和进步。 坐标最好是东京靠埼玉, ...

日语考试

行政书士资格考试

华人网今年十一月份打算考行政书士资格,有没有一起考试的小伙伴,可以加我微信,大家一起分享学习经验。同时更加欢迎考过的前辈给予指导!万分感谢! ...

日语考试

1v1辅导研究计划书(情报,通信专业)

华人网教育背景:985计算机+早大情报 辅导经历:曾在东京知名的理工孰任教,教授课程包括《高等数学》,《线性代数》,《形式语言》,《数理统计》,曾1v1辅导过多名学生的研究计划书。 ...

日语考试

找个小伙伴一起学习java

华人网准备明年入职,有资料可以共享给你,我是基本0开始的所以想互相监督,约定线上固定时间,守时素质高的,日语太差的别了,一起学习 评论 留下你的V我加你。举个例子,约定好每周 ...

日语考试

求书 ソーシャルワーク基盤と専門職

华人网求书 ソーシャルワーク基盤と専門職 评论 这本书应该是日本学校的教材,而且好像是较新版本,LZ是不是觉得这里比去书店找能更快找到? 评论 学校要用的书想便宜点买个二手的 ...