Networking Games 程式設計 潘仁義 CCU COMM.

Slides:



Advertisements
Similar presentations
广州市教育局教学研究室英语科 Module 1 Unit 2 Reading STANDARD ENGLISH AND DIALECTS.
Advertisements

Which TV program is the video? 中国达人秀 China’s Got Talent 选秀节目 talent show talent n. 天资;天赋.
簡單 GIF 製作 (1)Gifmake (2)PICASION.COM By Shark. Gifmake introduction(1) 1.You can create a picture. Just specify width and height in pixels, then you'll.
前言 何謂能源 能源的種類 我們為何要節約能源 如何正確安全使用能源 節約能源的方法 節約能源的技術 結論與心得 資料來源.
如何与客户有效沟通 外贸团队销售及管理实战培训 浙江艾力斯特健康科技有限公司
2014 年上学期 湖南长郡卫星远程学校 制作 13 Getting news from the Internet.
高等教育創新轉型方案 教育部
我们会赞叹生命之花的绚丽和多姿,也会歌颂生命之树的烂漫和青翠,但是生命是如此脆弱……
樂 樂 西 玩 西 玩 門 門.
自衛消防編組任務職責 講 義 This template can be used as a starter file for presenting training materials in a group setting. Sections Right-click on a slide to add.
真题重现:广东高考中的不定式。 1 (2008年高考题)For example, the proverb,“ plucking up a crop _________(help) it grow ,” is based on the following story… 2 (2007年高考题)While.
即兴中文讲演比赛 On-Site Speech 新型比赛项目
第六节 脑和脊髓的传导通路.
任务2: 通报的写作.
How can we be a member of the Society? You should finish the following tasks if you want to be a member of the Birdwatching Society.
你的潜能是无限的 ——高三心理辅导.
Unit 7 Protect the Earth (Story time) 觅渡教育集团 王 珏 标题 课时 教师姓名 日期 1.
Module 7 Computers 第2课时.
Unit 3 Families Celebrate Together Lesson 22 Presents from Canada!
Module 5.
Ⅱ、从方框里选择合适的单词填空,使句子完整通顺。 [ size beef special large yet ]
中间件 定义:中间件是介于应用与操作系统之间的系统软件,是相关应用的基准平台 三大基础软件:操作系统、数据库、中间件
Microsoft Access 第十二組 黃彥維 陳重嘉.
传输层是整个协议层次的核心,其任务是在源机器和目标机器之间提供可靠的、性价比合理的数据传输功能,并与当前所使用的物理网络完全独立
Advanced Sockets Programming
学练优英语教学课件 八年级(上) it! for Go
初二英语写作课 课件 福建省闽清县第一中 王国豪
Socket 基本觀念.
系統與網路管理工具.
Guide to Freshman Life Prepared by Sam Wu.
Decision Support System (靜宜資管楊子青)
Unit 7 What’s the highest mountain in the world?
Unit 8 How do you make a banana milk shake?
受詞(Object, O.) 具名詞性質的字詞、片語或子句
第十讲 TCP协议 协议概述 报文段格式 差错控制 流控和拥塞控制 TCP连接管理 TCP性能问题 TCP软件设计 2018/12/7
Echo Server/Client Speaker:Fang.
Unit 1 鸳大九义校 杨付春.
Unit 4.
Decision Support System (靜宜資管楊子青)
---八上新教材分析 青岛三十九中学 孙晓霞
第十五课:在医院看病.
Hobbies II Objectives A. Greet a long time no see friend: Respond to the greeting: B. Ask the friend if he/she likes to on this weekend? She/he doesn’t.
Westmont College 网络应用软件 第一讲 (客户-服务器 概念, 协议端口的使用, 套接字API)
資料庫 靜宜大學資管系 楊子青.
Advister: Quincy Wu Speaker: Chenglin Tsai Date:3/26
My favorite subject is science.
Wireshark DNS&HTTP封包分析
Unit 7 Lesson 20 九中分校 刘秀芬.
成才之路 · 英语 人教版 · 必修1 路漫漫其修远兮 吾将上下而求索.
高等教育創新轉型方案 教育部
Google Local Search API Research and Implementation
爬蟲類動物2 Random Slide Show Menu
亚博科技 Arduino视频教程 第12讲 8乘8点阵.
课程建设汇报 方宝富 合肥工业大学
面向非连接的 SOCKET编程 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
SOCKET( ).
Select模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
TEEN CHALLENGE Next Steps 核心价值观总结 CORE VALUES 青年挑战核心价值观
Is this / that your …? Yes, thank you. No, it isn’t.
Repeating Blocks: Iteration 靜宜大學資管系 楊子青
计算机问题求解 – 论题1-5 - 数据与数据结构 2018年10月16日.
Create and Use the Authorization Objects in ABAP
教育部特殊教育通報網 學生異動、接收操作說明.
怎樣把同一評估 給與在不同班級的學生 How to administer the Same assessment to students from Different classes and groups.
Arguments to the main Function and Final Project
助教:廖啟盛 JAVA Socket(UDP) 助教:廖啟盛
Sun-Star第六届全国青少年英语口语大赛 全国总决赛 2015年2月 北京
INTRODUCTION Making 24 with 4 cards DETAILS TEST GAME GAME.
Do you want to go to a movie ?
When using opening and closing presentation slides, use the masterbrand logo at the correct size and in the right position. This slide meets both needs.
Presentation transcript:

Networking Games 程式設計 潘仁義 CCU COMM

網路遊戲系統架構 Pure Client/Server 架構 Complete world Game Server database Protocol State Computed result

貪食蛇

程式架構 Server Client Protocol 記載所有蛇的位置,移動方向等資訊 負責接受連線 遊戲規則計算(上下左右移,有沒有撞到) Client 接受使用者輸入 顯示蛇在螢幕上 與Server端連線 Protocol 連線後,先告知client蛇的ID,以便特殊顯示 Client 傳key給server Server 傳 (ID, row, col)給Client畫

Client 程式流程 start 主要運作迴圈 N 是否有網路或使用者輸入 與server連線 Y 處理網路資料 畫圖 接受MyID stop

Server 資料結構 蛇, struct { 蛇有好幾條 蛇移動的時候… 蛇撞到的時候… 有一條新的蛇的時候… fd, row[], col[], d_row, d_col 蛇有好幾條 Array of struct 蛇移動的時候… 蛇撞到的時候… 有一條新的蛇的時候…

Server 程式流程 主迴圈 start 處理已連線的蛇 準備被連線 處理要連線的蛇 時間進行 將蛇移動 如果撞到 stop

I/O Multiplexing select()

I/O Multiplexing We often need to be able to monitor multiple descriptors: a generic TCP client (like telnet) A server that handles both TCP and UDP Client that can make multiple concurrent requests (browser?).

Example - generic TCP client Input from standard input should be sent to a TCP socket. Input from a TCP socket should be sent to standard output. How do we know when to check for input from each source?

Generic TCP Client STDIN TCP SOCKET STDOUT

select() int select( int maxfd + 1, fd_set *readset, fd_set *writeset, fd_set *excepset, const struct timeval *timeout); maxfd: highest number assigned to a descriptor. readset: set of descriptors we want to read from. writeset: set of descriptors we want to write to. excepset: set of descriptors to watch for exceptions. timeout: maximum time select should wait

struct timeval struct timeval { long tv_sec; /* seconds */ long tv_usec; /* microseconds */ } struct timeval max = {1,0};

fd_set Implementation is not important Operations you can use with an fd_set: void FD_ZERO( fd_set *fdset); void FD_SET( int fd, fd_set *fdset); void FD_CLR( int fd, fd_set *fdset); int FD_ISSET( int fd, fd_set *fdset);

Using select() Create fd_set Clear the whole thing with FD_ZERO Add each descriptor you want to watch using FD_SET. Call select when select returns, use FD_ISSET to see if I/O is possible on each descriptor.

Server的multiplexing Server 時間進行 接受新的蛇的連線 好幾條蛇的輸入 新的蛇

Client 的multiplexing Client Server的畫圖指示 接受使用者輸入 使用者