CS 480/680: GAME ENGINE PROGRAMMING

Size: px
Start display at page:

Download "CS 480/680: GAME ENGINE PROGRAMMING"

Transcription

1 CS 480/680: GAME ENGINE PROGRAMMING INPUT AND NETWORKING 2/7/2013 Santiago Ontañón

2 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion

3 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion

4 Student Presentations Sean Bluestein: An Extensible Trigger System for AI Agents, Objects and Quests Kevin Burdick: The 2009 Mario AI Competition Mateusz Stankiewicz: Convincing-Looking Glass for Games Binggang Wo Octree Construction

5 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion

6 Game Engine Architecture Game Specific Game Engine Functionalities Game Engine Resource Management Utility Layer Platform Independence Layer SDKs OS DRIVERS HARDWARE Dependencies

7 Game Engine Architecture Scripting Artificial Intelligence Online Multiplayer Rendering Engine Animation Engine Gameplay Foundations (Game Loop) Physics Audio Subsystem Collisions Profiling & Debugging

8 Handling User Input User Input: Keyboard presses Mouse movements Joystick Touch surfaces Cameras Microphones Remote input (from another computer over the network) Etc. Game Engine should process user input, and react accordingly: Trigger character movements, etc.

9 Trivial Way (Do NOT do this!) boolean cycle() { } If (key_pressed[space] } joystick_button(button1) bouse_button_pressed(button1)) { firebullet();

10 Trivial Way (Do NOT do this!) boolean cycle() { } If (key_pressed[space] } joystick_button(button1) bouse_button_pressed(button1)) { firebullet(); Problem 1: Hard-coding input mapping. If we want to change the fire key to m, we have to look in the code for all instances of this.

11 Trivial Way (Do NOT do this!) boolean cycle() { } If (key_pressed[space] } joystick_button(button1) bouse_button_pressed(button1)) { firebullet(); Problem 2: Hard-coding input devices. What if we want to have a player in a remote computer over the network? What if we want to make our game work on a tablet? Problem 1: Hard-coding input mapping. If we want to change the fire key to m, we have to look in the code for all instances of this.

12 Handling User Input: The Input Map User Input: Game Actions: Move Right? Fire Switch weapon

13 Handling User Input: The Input Map The input map is a table, or module that: Encodes the translation from user input to game actions/events Can be provided by the game engine Typically only used for in-game input (i.e. controlling player character). But it could also be used to handle input for the game menus, GUI, etc. (with a proper design)

14 Handling User Input: The Input Map Input Map example API: Class InputMap { public: void addkeyboardmap(int key, GameAction ga); void addkeyboardcombomap(list<int> keys, GameAction ga); void addkeysequencemap(list<int> keys, GameAction ga); void addmousebuttonmap(int button, GameAction ga); void addjoystickmap(int koystickevent, GameAction ga); etc. } GameInput getinput();

15 Handling User Input: The Input Map Input Map example API: Class InputMap { Class GameAction { Class GameActions { public: int actioncode; List<CharacterActions> controllers; int characterid; void } addkeyboardmap(int key, GameAction } ga); void addkeyboardcombomap(list<int> keys, GameAction ga); void addkeysequencemap(list<int> keys, GameAction ga); void addmousebuttonmap(int button, GameAction The CharacterActions ga); class is void Class addjoystickmap(int CharacterActions { koystickevent, GameAction an abstraction ga); that stores all the bool left, right, jump, crouch; possible actions supported by etc. } your game engine (this example is oversimplistic, you might need a more complex structure), and GameInput getinput(); whether the player triggered that } action or not.

16 Handling User Input: The Input Map Input Map example API: For example, for an analogous Class InputMap { Class GameAction { Class GameActions { control engine (e.g. Nintendo Wii), public: int actioncode; List<CharacterActions> controllers; you might want to include desired int characterid; void } addkeyboardmap(int key, GameAction weapon rotation, } ga); etc. void addkeyboardcombomap(list<int> keys, GameAction ga); void addkeysequencemap(list<int> keys, GameAction ga); void addmousebuttonmap(int button, GameAction The CharacterActions ga); class is void Class addjoystickmap(int CharacterActions { koystickevent, GameAction an abstraction ga); that stores all the bool left, right, jump, crouch; possible actions supported by etc. } your game engine (this example is oversimplistic, you might need a more complex structure), and GameInput getinput(); whether the player triggered that } action or not.

17 Handling User Input: The Input Map Input Map example API: Class InputMap { Class GameAction { Class GameActions { public: int actioncode; List<CharacterActions> controllers; int characterid; void } addkeyboardmap(int key, GameAction } ga); void addkeyboardcombomap(list<int> keys, GameAction ga); void addkeysequencemap(list<int> keys, GameAction ga); void addmousebuttonmap(int button, GameAction ga); void Class addjoystickmap(int CharacterActions { koystickevent, GameAction ga); The GameActions class is just a bool left, right, jump, crouch; list with all the input given to all etc. } the characters in the game (either by local players, AIs, or remote GameInput getinput(); players). }

18 Handling User Input while(!quit) { } I = InputMap.getinput(&quit); G.updateAI(&I); G.updatePhysics(I); G.render(); FPScontrol(); The game loop calls the input handler to translate user input to game actions The AI controls characters also by generating game actions (identical data structure than user input) Physics/animation, etc. do not know if a player is controller by a player, or by an AI.

19 Handling User Input Input Map AI Online Multiplayer Network Game Actions Rest of the game engine

20 Handling User Input Although depending on the multiplayer implementation, your game engine might not need to know the actions executed remotely. Input Map AI Online Multiplayer Network Game Actions Rest of the game engine

21 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion

22 Example Networked Multiplayer Games Multi-User Dungeons Early predecessors of today s MMOs (used a client-server architecture) Unbounded number of players

23 Example Networked Multiplayer Games MUDs have survived, and there are many modern ones:

24 Example Networked Multiplayer Games Bolo (1987) (relatively unknown) Mac-only game, one of the earliest network games ever

25 Example Networked Multiplayer Games DOOM (1993) 4 players over local network (IPX protocol) Peer-to-peer: deterministic game, sharing actions over network (numbered, to detect lost packets) Peers used broadcasts (saturated the network)

26 Example Networked Multiplayer Games Quake (1996)

27 Example Networked Multiplayer Games Quake (1996) Featured permanent servers, where players could meet and play (before Quake, you had to coordinate in the real world on a time to play, and share your IP via phone with friends to play! Client-Server over the internet (not just LAN!) A new problem appeared (unknown till then): latency! QuakeWorld: update to Quake just to address latency. Introduced a key idea called client-side prediction

28 Example Networked Multiplayer Games MMOs, e.g.: RuneScape network of servers

29 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion

30 Networking 101 (for Games) Node: a computer/device in the network IP: Address of a node (e.g ) Packet: a piece of information transferred from one node to another Typically a packet is sent to: (IP, port) IP: address of destination Port: ( ) identifies the service that should respond to this packet Server: a node that offers some services Client: a node that requests a service from a server

31 Networking 101 (for Games) UDP: Most adequate for game Simplest protocol networking. Most games Simply offers a service to deliver a packet from implement one node their own to packetloss protocol on top of UDP. another No control of packet-loss, no persistent connections, etc. Summary: fast but unreliable TCP: Not as common in games, since Most complex protocol it s slower. And its reliability protocol is not designed with Packet-loss control, persistent connections real-time games in mind. Summary: slow but reliable

32 Networking 101 (for Games) UDP: Most adequate for game Simplest protocol networking. Most games Simply offers a service to deliver a packet from implement one node their own to packetloss protocol on top of UDP. another No control of packet-loss, no persistent connections, etc. Summary: fast but unreliable TCP: Not as common in games, since Most complex protocol it s slower. And its reliability It s more complex than this. But the rule of protocol is not designed with Packet-loss thumb control, is: persistent connections real-time games in mind. - Summary: Use UDP slow for real-time but reliable updates - Use TCP for chat windows (Google TCP vs UDP games for more)

33 Sockets Sockets: You can see a socket as a pipe that allows you to send data between two nodes in the network. Once you have a socket open, you can send and receive packts through it. Then can be configured to send using TCP or UDP All network libraries allow you to open/close/send and receive through sockets If you are working on networking for your project, I m assuming you know how sockets work. No time for detailed explanations here.

34 Sockets Different libraries/languages will give you different forms to: Create a socket (TCP or UDP) Server: bind a socket to an address/port for listening to incoming connections Client: establish a connection (to a particular IP/port) Server: accept incoming connections Send data through an open connection Receive data from an open connection Timeline: Server: Client: 1. Create Socket 1. Create Socket 2. Bind 2. Establish 3. Accept 4. Send/receive 3. Send/receive

35 Communication Architectures Peer-to-Peer Client-Server Hybrid Client-Network of Servers

36 Communication Architectures Peer-to-Peer Hybrid Client-Server All instances are clients, who send updates to each other, trying to keep the world simulation in Client-Network sync. of Servers

37 Communication Architectures Peer-to-Peer One instance is special, the server. All clients send Hybrid requests to the server, server maintains the game state, and informs clients of the changes. Client-Server Client-Network of Servers

38 Communication Architectures Peer-to-Peer Hybrid Different game functionalities implemented with different Client-Server architectures, for example: game state using client-server, in-game chat using peer-to-peer. Client-Network of Servers

39 Communication Architectures Each client associated with a server. Network of servers can communicate using a peer-to-peer (or using a client-server, with a Peer-to-Peer master server). Very scalable, but the most complex in terms of communication protocol. Client-Server Hybrid Client-Network of Servers

40 Communication Architectures: Network of Servers Example (MMO) WoW had almost 2000 servers (derived from traffic data) Client Zone 1 server Zone 2 server Zone n server Chat Server Patch Server Master Server Account Server

41 Communication Architectures Peer-to-Peer Client-Server Hybrid Client-Network of Servers

42 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion

43 General Socket Class Your can start by wrapping the socket class given to you in your language in a class like this: Class GameSocket { GameSocket(SOCKET sock, int localip) send(gamepacket data); bool hasdata(); GamePacket receive(); } Class GamePacket { int getbytesize(); char *getdataptr(); } // depending on your game engine

44 General Socket Class Your can start by wrapping the socket class given to you in your language in a class like this: Class GameSocket { GameSocket(SOCKET sock, int localip) send(gamepacket data); bool hasdata(); GamePacket receive(); } Class GamePacket { int getbytesize(); char *encode(); void decode(char *data, int size); } // depending on your game engine This class stores one of the messages that your game will send. It should have at least 2 methods: one to encode the packet into an array of bytes, and the other to decode it from an array of bytes.

45 General Socket Class Your can start by wrapping the socket class given to you in your language in a class like this: Class GameSocket { GameSocket(SOCKET sock, int localip) send(gamepacket data); bool hasdata(); GamePacket receive(); } Class GamePacket { int getbytesize(); char *encode(); void decode(char *data, int size); } // depending on your game engine Your GameSocket class will be an abstract class (that you will exted with a ServerSocket and a ClientSocket class). But this one is handy, to organize the code.

46 Server Socket Classes We will then extend it for the server Class ServerMasterSocket extends GameSocket { ServerMasterSocket (int port); } init(int port); ServerSocket acceptconnection(int &IP); Just creates an instance, but does nothing else. We don t want to open the port right away after creating the socket, since we might just be setting up the data structures. Class ServerSocket extends GameSocket { ServerSocket (SOCKET s); }

47 Server Socket Classes We will then extend it for the server Class ServerMasterSocket extends GameSocket { ServerMasterSocket (int port); } init(int port); ServerSocket acceptconnection(int &IP); This function does all the work of creating the socket: 1) Create the socket 2) Set the options (protocol, etc.) 3) Set the port 4) Start listening Class ServerSocket extends GameSocket { ServerSocket (SOCKET s); }

48 Server Socket Classes We will then extend it for the server Class ServerMasterSocket extends GameSocket { ServerMasterSocket (int port); } init(int port); ServerSocket acceptconnection(int &IP); Class ServerSocket extends GameSocket { ServerSocket (SOCKET s); } When hasdata is true, it means that a client is trying to connect. This function accepts the connection, and returns the ServerSocket that will be used for that connection.

49 Client Socket Classes We will then extend it for the client Class ClientSocket extends GameSocket { ClientSocket (int port); } connect(int IP, int port) The only extra functionality here is to connect to the server socket

50 Overview Client side: Server side: ClientSocket MasterServerSocket Step one is to create the MasterServerSocket, and have it listen for incoming connections.

51 Overview Client side: Server side: ClientSocket Connection Request MasterServerSocket When a client wants to connect, it requests a connection to the MasterServerSocket

52 Overview Client side: Server side: ClientSocket MasterServerSocket ServerSocket When the server accepts the connection, a ServerSocket is created and this is the one that keeps the connection open to the ClientSocket.

53 Overview Client side: Server side: ClientSocket MasterServerSocket GamePacket GamePacket ServerSocket GamePackets can be sent back and forth through this connection.

54 Overview Client side: Server side: ClientSocket MasterServerSocket ClientSocket ServerSocket ServerSocket ServerSocket ClientSocket For each new client, a new ServerSocket is created, but there is only a single MasterServerSocket, that is always open waiting for incoming new clients.

55 Connecting to the Game Loop Client side: Server side: Network Module ClientSocket MasterServerSocket GamePacket GamePacket ServerSocket while(!quit) { I = InputMap.getinput(&quit); G.networkUpdate(&I) G.updateAI(&I); G.updatePhysics(I); G.render(); FPScontrol(); } In the game loop, at each cycle, you call the network module, which would process all the GamePackets received through the socket (you should have an incoming queue, since packets arrive asynchronously). Then update the game state/input/etc. with the info from those packets. It should also send packets to the server with the user input (I).

56 Connecting to the Game Loop Client side: Network Module Server side: Network Module ClientSocket MasterServerSocket GamePacket GamePacket ServerSocket while(!quit) In the server { game loop, at each cycle, you I = call InputMap.getinput(&quit); the network module, which would G.networkUpdate(&I) process all the GamePackets received G.updateAI(&I); through the socket to get the actions the G.updatePhysics(I); players want to execute, it will also send back G.render(); to the clients the most updated game FPScontrol(); state. } while(!quit) { G.networkUpdate(&I) G.updateAI(&I); G.updatePhysics(I); FPScontrol(); }

57 Considerations Depending on the nature of the game, what is sent through in the GamePackets will be different: In a deterministic game: Client/server only need to send actions In general: Clients send actions Server sends game state updates You can send global game state updates, or smaller chunks with individual GameObject updates You can also optimize and only send to each client, updates of the objects that are near the player (the rest, doesn t matter).

58 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion

59 Peer to Peer Architecture All computers are clients and servers Peer 1 side: Peer 2 side: MasterServerSocket MasterServerSocket ServerSocket ServerSocket ClientSocket ClientSocket

60 Considerations All peers send actions and game state updates Need a policy to keep game state consistency Each game object should have an owner (one of the peers). The game state sent by that peer is the one that will stay When new peers connect, or peers disconnect, game object owners should be updated.

61 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion

62 Client-side Prediction Consider a very simple client that simply takes user input, sends it to the server, receives state updates and renders them. User input Perceived delay Process input Render

63 Client-side Prediction Consider a very simple client that simply takes user input, sends it to the server, receives state updates and renders them. User input Perceived delay This can be multiple frames of delay! Process input Render

64 Client-side Prediction Idea: Predict the update that will be received from the server Render the prediction When the update from the server is received, merge any discrepancies Two main problems: Player prediction Non-player prediction

65 Client-side Prediction Player prediction simply simulates the effects of the player actions directly (non-player characters are not predicted) Perceived delay User input Render Process input Merge States Render

66 Client-Side Prediction The client also simulates the game state (physics, collision, etc.) Player Prediction: Effects of the player actions are simulated locally Non-player Prediction: Predict the actions that non-players will execute, and simulate them too (for example, predict that they will keep moving in the same direction as they were in the previous frame).

67 Outline Student Presentations Handling User Input Multiplayer Games Networking Basics Client-Server Architectures Peer-to-Peer Architectures Client-side Prediction Project Discussion

68 Links to Interesting Game Videos Sugar Cube Bittersweet Factory:

69 Remember that next week: Second Project Deliverable: Updated document from Deliverable 1: Address feedback that you got from Deliverable 1 Any potential topic change Small description of how the game loop integrates with your demo/game engine Source code: Do NOT send code as an attachment. Send a URL to your code, or to a code repository (SVN, GIT, etc.) Submission procedure: to (copy both): Santiago Ontañón santi@cs.drexel.edu Stephen Lombardi sal64@drexel.edu Subject: CS Project Deliverable 2 Group #

Networked Virtual Environments and Distributed Rendering IGS HT Background and history. Background and history. Background and history

Networked Virtual Environments and Distributed Rendering IGS HT Background and history. Background and history. Background and history Networked Virtual Environments and Distributed Rendering IGS HT 2003-09-24 Multiplayer games 1961 Spacewar, MIT 1979 MUD, Essex University 1993 Doom, Id Software Lars Pettersson 1994 Warcraft, Blizzard

More information

Interactive Graphical Systems HT2006

Interactive Graphical Systems HT2006 HT2006 Networked Virtual Environments Informationsteknologi 2006-09-26 #1 This Lecture Background and history on Networked VEs Fundamentals (TCP/IP, etc) Background and history on Learning NVEs Demo of

More information

Player 2 has joined the game

Player 2 has joined the game Video Game Dev 2017/2018 Università dell Insubria Networking for Games Marco Tarini Player 2 has joined the game Multiplayer game types, according to gameplay collaborative competitive versus teams How

More information

Part 17: Networking Technology for Virtual Environments

Part 17: Networking Technology for Virtual Environments Part 17: Networking Technology for Virtual Environments Virtuelle Realität Wintersemester 2006/07 Prof. Bernhard Jung Overview Introduction Data transfer Communication architectures Managing dynamic shared

More information

Socket programming. Complement for the programming assignment INFO-0010

Socket programming. Complement for the programming assignment INFO-0010 Socket programming Complement for the programming assignment INFO-0010 Outline Socket definition Briefing on the Socket API A simple example in Java Multi-threading and Synchronization Example : HTTP protocol

More information

Networked Applications: Sockets. End System: Computer on the Net

Networked Applications: Sockets. End System: Computer on the Net Networked Applications: Sockets Topics Programmer s view of the Internet Sockets interface End System: Computer on the Net Internet Also known as a host 2 Page 1 Clients and Servers Client program Running

More information

Advanced Java Programming. Networking

Advanced Java Programming. Networking Advanced Java Programming Networking Eran Werner and Ohad Barzilay Tel-Aviv University Advanced Java Programming, Spring 2006 1 Overview of networking Advanced Java Programming, Spring 2006 2 TCP/IP protocol

More information

CSC 401 Data and Computer Communications Networks

CSC 401 Data and Computer Communications Networks CSC 401 Data and Computer Communications Networks Application Layer Video Streaming, CDN and Sockets Sec 2.6 2.7 Prof. Lina Battestilli Fall 2017 Outline Application Layer (ch 2) 2.1 principles of network

More information

Networked Applications: Sockets. Goals of Todayʼs Lecture. End System: Computer on the ʻNet. Client-server paradigm End systems Clients and servers

Networked Applications: Sockets. Goals of Todayʼs Lecture. End System: Computer on the ʻNet. Client-server paradigm End systems Clients and servers Networked Applications: Sockets CS 375: Computer Networks Spring 2009 Thomas Bressoud 1 Goals of Todayʼs Lecture Client-server paradigm End systems Clients and servers Sockets and Network Programming Socket

More information

Java Support for developing TCP Network Based Programs

Java Support for developing TCP Network Based Programs Java Support for developing TCP Network Based Programs 1 How to Write a Network Based Program (In Java) As mentioned, we will use the TCP Transport Protocol. To communicate over TCP, a client program and

More information

JAVA SOCKET PROGRAMMING

JAVA SOCKET PROGRAMMING JAVA SOCKET PROGRAMMING WHAT IS A SOCKET? Socket The combination of an IP address and a port number. (RFC 793 original TCP specification) The name of the Berkeley-derived application programming interfaces

More information

CSMC 412. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala Set 2. September 15 CMSC417 Set 2 1

CSMC 412. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala Set 2. September 15 CMSC417 Set 2 1 CSMC 412 Computer Networks Prof. Ashok K Agrawala 2015 Ashok Agrawala Set 2 September 15 CMSC417 Set 2 1 Contents Client-server paradigm End systems Clients and servers Sockets Socket abstraction Socket

More information

Homework 1. Hadachi&Lind October 25, Deadline for doing homework is 3 weeks starting from now due date is:

Homework 1. Hadachi&Lind October 25, Deadline for doing homework is 3 weeks starting from now due date is: Homework 1 Hadachi&Lind October 25, 2017 Must Read: 1. Deadline for doing homework is 3 weeks starting from now 2017.10.25 due date is: 2017.11.15 5:59:59 EET 2. For any delay in submitting the homework

More information

CSE1720 Lecture 08; Week 05 Lecture 09 Second level Third level Fourth level Fifth level

CSE1720 Lecture 08; Week 05 Lecture 09 Second level Third level Fourth level Fifth level Shooter Games CSE1720 Click to edit Master Week text 04, styles Lecture 08; Week 05 Lecture 09 Second level Third level Fourth level Fifth level Winter 2014! Thursday, Jan 29, 2015/Tuesday, Feb 03, 2015

More information

Networking Presented by: Marcin Chady

Networking Presented by: Marcin Chady Networking Presented by: Marcin Chady Networking Present and Future Originally the domain of PC games PC networked games are very popular Everquest, Diablo, Starcraft, WoW, EVE Online Counterstrike, Unreal

More information

Networks and distributed computing

Networks and distributed computing Networks and distributed computing Abstractions provided for networks network card has fixed MAC address -> deliver message to computer on LAN -> machine-to-machine communication -> unordered messages

More information

Networking Past, Present and Future

Networking Past, Present and Future Networking 1 Networking Past, Present and Future Networking is a crucial feature of many modern games Used (12+ years ago) to be mainly PC Halo 2 brought online to the consoles Core feature of all consoles

More information

BrickNet (cont d) Other Academic Projects

BrickNet (cont d) Other Academic Projects BrickNet (cont d) Object-request brokers on the servers Aimed for collaborative design environments each node is responsible for its part of design and for sharing that information Also, networked games,

More information

CS 326: Operating Systems. Networking. Lecture 17

CS 326: Operating Systems. Networking. Lecture 17 CS 326: Operating Systems Networking Lecture 17 Today s Schedule Project 3 Overview, Q&A Networking Basics Messaging 4/23/18 CS 326: Operating Systems 2 Today s Schedule Project 3 Overview, Q&A Networking

More information

Situational Awareness: Terrain Reasoning for Tactical Shooter A.I

Situational Awareness: Terrain Reasoning for Tactical Shooter A.I Situational Awareness: Terrain Reasoning for Tactical Shooter A.I Situational Awareness The capability of an A.I. agent to reason is limited by the data its sensor's can acquire about the world The representation

More information

Computer Networks Prof. Ashok K. Agrawala

Computer Networks Prof. Ashok K. Agrawala CMSC417 Computer Networks Prof. Ashok K. Agrawala 2018Ashok Agrawala September 6, 2018 Fall 2018 Sept 6, 2018 1 Overview Client-server paradigm End systems Clients and servers Sockets Socket abstraction

More information

(Refer Slide Time: 1:09)

(Refer Slide Time: 1:09) Computer Networks Prof. S. Ghosh Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecturer # 30 UDP and Client Server Good day, today we will start our discussion

More information

Massive Documentation

Massive Documentation Massive Documentation Release 0.2 Inhumane Software June 15, 2016 Contents 1 Introduction 3 1.1 Features.................................................. 3 1.2 Getting Started..............................................

More information

6 Controlling the Technomad Encoder

6 Controlling the Technomad Encoder T 6 Controlling the Technomad Encoder 6.1 User control interface The Techomad Encoder has a local web server built in. You can control the Technomad Encdoder from anywhere on your network using a standard

More information

EEC-682/782 Computer Networks I

EEC-682/782 Computer Networks I EEC-682/782 Computer Networks I Lecture 16 Wenbing Zhao w.zhao1@csuohio.edu http://academic.csuohio.edu/zhao_w/teaching/eec682.htm (Lecture nodes are based on materials supplied by Dr. Louise Moser at

More information

Client/Server Computing & Socket Programming

Client/Server Computing & Socket Programming COMP 431 Internet Services & Protocols Client/Server Computing & Socket Programming Jasleen Kaur January 29, 2019 Application-Layer Protocols Overview Application-layer protocols define:» The types of

More information

Ports under 1024 are often considered special, and usually require special OS privileges to use.

Ports under 1024 are often considered special, and usually require special OS privileges to use. 1 2 Turns out that besides an IP address (used by the IP layer), there is another address that is used by TCP (stream sockets) and, coincidentally, by UDP (datagram sockets). It is the port number. It's

More information

Lecture 10: Protocol Design

Lecture 10: Protocol Design Lecture 10: Protocol Design Prof. Shervin Shirmohammadi SITE, University of Ottawa Fall 2005 CEG 4183 10-1 Introduction TCP and UDP are generic protocols: They fulfill the needs of a wide range of applications

More information

Student ID: CS457: Computer Networking Date: 5/8/2007 Name:

Student ID: CS457: Computer Networking Date: 5/8/2007 Name: CS457: Computer Networking Date: 5/8/2007 Name: Instructions: 1. Be sure that you have 10 questions 2. Write your Student ID (email) at the top of every page 3. Be sure to complete the honor statement

More information

Operating Systems. 16. Networking. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski

Operating Systems. 16. Networking. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski Operating Systems 16. Networking Paul Krzyzanowski Rutgers University Spring 2015 1 Local Area Network (LAN) LAN = communications network Small area (building, set of buildings) Same, sometimes shared,

More information

CS 351 Week 15. Course Review

CS 351 Week 15. Course Review CS 351 Week 15 Course Review Objectives: 1. To review the contents from different weeks. 2. To have a complete understanding of important concepts from different weeks. Concepts: 1. Important Concepts

More information

Networking, Traffic Jams, and Schrödinger's Cat. Shawn Hargreaves Software Development Engineer XNA Community Game Platform Microsoft

Networking, Traffic Jams, and Schrödinger's Cat. Shawn Hargreaves Software Development Engineer XNA Community Game Platform Microsoft Networking, Traffic Jams, and Schrödinger's Cat Shawn Hargreaves Software Development Engineer XNA Community Game Platform Microsoft XNA Framework Networking I spoke about networking at Gamefest 2007 What

More information

Chapter 5.6 Network and Multiplayer

Chapter 5.6 Network and Multiplayer Chapter 5.6 Network and Multiplayer Multiplayer Modes: Event Timing Turn-Based Easy to implement Any connection type Real-Time Difficult to implement Latency sensitive 2 Multiplayer Modes: Shared I/O Input

More information

Internet Connectivity with

Internet Connectivity with Internet Connectivity with Introduction The purpose of this workshop is to help you g et acquainted with the basics of internet connectivity by leveraging ARM mbed tools. If you are not already familiar

More information

LECTURE WK4 NETWORKING

LECTURE WK4 NETWORKING LECTURE WK4 NETWORKING Workbook and Quiz Workbook o Due in WK5 o Must hand in a hard copy to the tutor as well as an online submission Quiz o In the practical class o 30mins to complete the quiz o Short,

More information

the gamedesigninitiative at cornell university Lecture 12 Architecture Design

the gamedesigninitiative at cornell university Lecture 12 Architecture Design Lecture 12 Take Away for Today What should lead programmer do? How do CRC cards aid software design? What goes on each card? How do you lay m out? What properties should y have? How do activity diagrams

More information

Managing and Securing Computer Networks. Guy Leduc. Chapter 2: Software-Defined Networks (SDN) Chapter 2. Chapter goals:

Managing and Securing Computer Networks. Guy Leduc. Chapter 2: Software-Defined Networks (SDN) Chapter 2. Chapter goals: Managing and Securing Computer Networks Guy Leduc Chapter 2: Software-Defined Networks (SDN) Mainly based on: Computer Networks and Internets, 6 th Edition Douglas E. Comer Pearson Education, 2015 (Chapter

More information

the gamedesigninitiative at cornell university Lecture 13 Architecture Design

the gamedesigninitiative at cornell university Lecture 13 Architecture Design Lecture 13 Take Away for Today What should lead programmer do? How do CRC cards aid software design? What goes on each card? How do you lay m out? What properties should y have? How do activity diagrams

More information

Assignment 2 Group 5 Simon Gerber Systems Group Dept. Computer Science ETH Zurich - Switzerland

Assignment 2 Group 5 Simon Gerber Systems Group Dept. Computer Science ETH Zurich - Switzerland Assignment 2 Group 5 Simon Gerber Systems Group Dept. Computer Science ETH Zurich - Switzerland t Your task Write a simple file server Client has to be implemented in Java Server has to be implemented

More information

CS 268: Computer Networking. Taking Advantage of Broadcast

CS 268: Computer Networking. Taking Advantage of Broadcast CS 268: Computer Networking L-12 Wireless Broadcast Taking Advantage of Broadcast Opportunistic forwarding Network coding Assigned reading XORs In The Air: Practical Wireless Network Coding ExOR: Opportunistic

More information

Outline of Topics. UDP Socket Java Programming. Multicast in Java. Real-time protocol (RTP) XMPP and Jingle protocols. Java I/O and New IO (NIO)

Outline of Topics. UDP Socket Java Programming. Multicast in Java. Real-time protocol (RTP) XMPP and Jingle protocols. Java I/O and New IO (NIO) Outline Outline of Topics UDP Socket Java Programming Multicast in Java Real-time protocol (RTP) XMPP and Jingle protocols Java I/O and New IO (NIO) UDP Socket Java Programming User Datagram Protocol (UDP)

More information

Internet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016

Internet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016 Internet Technology 06. Exam 1 Review Paul Krzyzanowski Rutgers University Spring 2016 March 2, 2016 2016 Paul Krzyzanowski 1 Question 1 Defend or contradict this statement: for maximum efficiency, at

More information

06/02/ Local & Metropolitan Area Networks 0. INTRODUCTION. 1. History and Future of TCP/IP ACOE322

06/02/ Local & Metropolitan Area Networks 0. INTRODUCTION. 1. History and Future of TCP/IP ACOE322 1 Local & Metropolitan Area Networks ACOE322 Lecture 5 TCP/IP Protocol suite and IP addressing 1 0. INTRODUCTION We shall cover in this topic: 1. The relation of TCP/IP with internet and OSI model 2. Internet

More information

Multiplayer Game Programming

Multiplayer Game Programming Multiplayer Game Programming Phoenix area game developer since 2001 Teacher at Art Institute since 2006 Worked on a variety of educational and commercial games Author of itween Visual Editor and CameraFor2D

More information

Internet Technology 3/2/2016

Internet Technology 3/2/2016 Question 1 Defend or contradict this statement: for maximum efficiency, at the expense of reliability, an application should bypass TCP or UDP and use IP directly for communication. Internet Technology

More information

peer) Poorly-connected hosts subscribe to a forwarding server packet compression and aggregation altering visual and temporal perceptions

peer) Poorly-connected hosts subscribe to a forwarding server packet compression and aggregation altering visual and temporal perceptions Peer-Server Systems Peer-to to-peer: minimizes latency, consumes bandwidth Client-server: effective aggregation and filtering, increases latency Hybrid peer-server: over short-haul, haul, high- bandwidth

More information

Principles of Computer Game Design and Implementation. Lecture 11

Principles of Computer Game Design and Implementation. Lecture 11 Principles of Computer Game Design and Implementation Lecture 11 We already learned Vector operations Sum Subtraction Dot product Cross product A few others about jmonkey, eg. User input, camera, etc 2

More information

UNIX Sockets. Developed for the Azera Group By: Joseph D. Fournier B.Sc.E.E., M.Sc.E.E.

UNIX Sockets. Developed for the Azera Group By: Joseph D. Fournier B.Sc.E.E., M.Sc.E.E. UNIX Sockets Developed for the Azera Group By: Joseph D. Fournier B.Sc.E.E., M.Sc.E.E. Socket and Process Communication application layer User Process Socket transport layer (TCP/UDP) network layer (IP)

More information

Sockets 15H2. Inshik Song

Sockets 15H2. Inshik Song Sockets 15H2 Inshik Song Internet CAU www server (www.cau.ac.kr) Your web browser (Internet Explorer/Safari) Sockets 2 How do we find the server? Every computer on the Internet has an Internet address.

More information

CS 457 Lecture 11 More IP Networking. Fall 2011

CS 457 Lecture 11 More IP Networking. Fall 2011 CS 457 Lecture 11 More IP Networking Fall 2011 IP datagram format IP protocol version number header length (bytes) type of data max number remaining hops (decremented at each router) upper layer protocol

More information

DISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES

DISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES DISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES Dr. Jack Lange Computer Science Department University of Pittsburgh Fall 2015 Outline System Architectural Design Issues Centralized Architectures Application

More information

3.2 COMMUNICATION AND INTERNET TECHNOLOGIES

3.2 COMMUNICATION AND INTERNET TECHNOLOGIES 3.2 COMMUNICATION AND INTERNET TECHNOLOGIES 3.2.1 PROTOCOLS PROTOCOL Protocol a set of rules governing the way that devices communicate with each other. With networks and the Internet, we need to allow

More information

Chapter II: Application Layer

Chapter II: Application Layer Chapter II: Application Layer UG3 Computer Communications & Networks (COMN) Myungjin Lee myungjin.lee@ed.ac.uk Slides copyright of Kurose and Ross Internet hourglass Here 2 Some network apps e-mail web

More information

IERG 4080 Building Scalable Internet-based Services

IERG 4080 Building Scalable Internet-based Services Department of Information Engineering, CUHK MScIE 2 nd Semester, 2015/16 IERG 4080 Building Scalable Internet-based Services Lecture 9 Web Sockets for Real-time Communications Lecturer: Albert C. M. Au

More information

Computer Communication Networks Socket Programming

Computer Communication Networks Socket Programming Computer Communication Networks Socket Programming ICEN/ICSI 416 Fall 2018 Prof. Aveek Dutta 1 Application Programming Interface Interface exported by the network Since most network protocols are implemented

More information

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition ELEC / COMP 177 Fall 2014 Some slides from Kurose and Ross, Computer Networking, 5 th Edition Project #1 Starts in one week Is your Linux environment all ready? Bring your laptop Work time after quick

More information

Wow Admin Panel. Version Probably the best WoW Private Servers trainer out there

Wow Admin Panel. Version Probably the best WoW Private Servers trainer out there Wow Admin Panel Version 2.0.0 Probably the best WoW Private Servers trainer out there Wow Admin Panel will notify you on possible detectable cheats on your specific realm, and how to avoid detection. When

More information

Computer Networked games

Computer Networked games Computer Networked games Another form of multimedia traffic audio, video and interactive Slides courtesy Mark Claypool @ WPI page 1 Game Types First Person Shooters Doom, Quake, Counter-strike, Massive

More information

Multi-User MIDP Game Design

Multi-User MIDP Game Design Multi-User MIDP Game Design David Price, Principal Software Engineer Jyri Salomaa, Program Manager, Games Nokia Research Center, Helsinki 1 NOKIA Multi-User MIDP Game Design Price/Salomaa Contents Examples

More information

CS 43: Computer Networks. 08:Network Services and Distributed Systems 19 September

CS 43: Computer Networks. 08:Network Services and Distributed Systems 19 September CS 43: Computer Networks 08:Network Services and Distributed Systems 19 September Reading Quiz Lecture 8 -Slide 2 Last class Inter-process communication using message passing How send and recv buffers

More information

4.0.1 CHAPTER INTRODUCTION

4.0.1 CHAPTER INTRODUCTION 4.0.1 CHAPTER INTRODUCTION Data networks and the Internet support the human network by supplying seamless, reliable communication between people - both locally and around the globe. On a single device,

More information

CS 10: Problem solving via Object Oriented Programming. Client/Server

CS 10: Problem solving via Object Oriented Programming. Client/Server CS 10: Problem solving via Object Oriented Programming Client/Server Agenda 1. Sockets 2. Server 3. MulAthreaded server 4. Chat server 2 Sockets are a way for computers to communicate IP: 1.2.3.4 HTTP

More information

CSC 4900 Computer Networks: End-to-End Design

CSC 4900 Computer Networks: End-to-End Design CSC 4900 Computer Networks: End-to-End Design Professor Henry Carter Fall 2017 Villanova University Department of Computing Sciences Review In the last two lectures, we discussed the fundamentals of networking

More information

CSci Introduction to Distributed Systems. Communication: RPC

CSci Introduction to Distributed Systems. Communication: RPC CSci 5105 Introduction to Distributed Systems Communication: RPC Today Remote Procedure Call Chapter 4 TVS Last Time Architectural styles RPC generally mandates client-server but not always Interprocess

More information

CSC 4900 Computer Networks: P2P and Sockets

CSC 4900 Computer Networks: P2P and Sockets CSC 4900 Computer Networks: P2P and Sockets Professor Henry Carter Fall 2017 Recap SMTP is the language that mail servers use to exchange messages. SMTP is push-based... why? You can run SMTP from a telnet

More information

QUICK START GUIDE. How Do I Get Started? Step #1 - Your Account Setup Wizard. Step #2 - Meet Your Back Office Homepage

QUICK START GUIDE. How Do I Get Started? Step #1 - Your Account Setup Wizard. Step #2 - Meet Your Back Office Homepage QUICK START GUIDE Here is a tool that will help you generate prospects and follow up with them using your web browser. Your Lead Capture system has Personal Sites, Contact Management, Sales Tools and a

More information

Socket Programming. Sungkyunkwan University. Hyunseung Choo Copyright Networking Laboratory

Socket Programming. Sungkyunkwan University. Hyunseung Choo Copyright Networking Laboratory Socket Programming Sungkyunkwan University Hyunseung Choo choo@skku.edu Copyright 2000-2019 Networking Laboratory Contents Goals Client-Server mechanism Introduction to socket Programming with socket on

More information

CS164 Final Exam Winter 2013

CS164 Final Exam Winter 2013 CS164 Final Exam Winter 2013 Name: Last 4 digits of Student ID: Problem 1. State whether each of the following statements is true or false. (Two points for each correct answer, 1 point for each incorrect

More information

Recap. TCP connection setup/teardown Sliding window, flow control Retransmission timeouts Fairness, max-min fairness AIMD achieves max-min fairness

Recap. TCP connection setup/teardown Sliding window, flow control Retransmission timeouts Fairness, max-min fairness AIMD achieves max-min fairness Recap TCP connection setup/teardown Sliding window, flow control Retransmission timeouts Fairness, max-min fairness AIMD achieves max-min fairness 81 Feedback Signals Several possible signals, with different

More information

LECTURE 5. Announcements

LECTURE 5. Announcements LECTURE 5 Announcements Falling Behind? Talk to us You still pass the class if you hand in all projects at the end of the semester Hand in even if you think you won t satisfy the playtesting requirements

More information

Chapter 3. The Basics of Networking

Chapter 3. The Basics of Networking Chapter 3 The Basics of Networking Learning Objectives Tell whether a communication technology (Internet, radio, LAN, etc.) is synchronous or asynchronous; broadcast or point-to-point Explain the roles

More information

Running head: CONCEPTS OF DISTRIBUTED MULTIPLAYER GAME SYSTEMS. Concepts of Distributed Multiplayer Game Systems. Vanna Bushong. Evangel University

Running head: CONCEPTS OF DISTRIBUTED MULTIPLAYER GAME SYSTEMS. Concepts of Distributed Multiplayer Game Systems. Vanna Bushong. Evangel University Concepts of Distributed 1 Running head: CONCEPTS OF DISTRIBUTED MULTIPLAYER GAME SYSTEMS Concepts of Distributed Multiplayer Game Systems Vanna Bushong Evangel University Concepts of Distributed 2 Abstract

More information

CS 126 Lecture S5: Networking

CS 126 Lecture S5: Networking CS 126 Lecture S5: Networking Outline Introductions Connectivity Naming and addressing Abstractions and layering Example: socket programming Conclusions CS126 24-1 Randy Wang Review: Technology Advances

More information

CS 126 Lecture S5: Networking

CS 126 Lecture S5: Networking CS 126 Lecture S5: Networking Outline Introductions Connectivity Naming and addressing Abstractions and layering Example: socket programming Conclusions CS126 24-1 Randy Wang Review: Technology Advances

More information

Massive Documentation

Massive Documentation Massive Documentation Release 0.1 Inhumane Software August 07, 2014 Contents 1 Introduction 3 1.1 Features.................................................. 3 1.2 Getting Started..............................................

More information

Chapter 2: outline. 2.1 principles of network applications. 2.6 P2P applications 2.7 socket programming with UDP and TCP

Chapter 2: outline. 2.1 principles of network applications. 2.6 P2P applications 2.7 socket programming with UDP and TCP Chapter 2: outline 2.1 principles of network applications app architectures app requirements 2.2 Web and HTTP 2.3 FTP 2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 socket programming

More information

Introduction to the Application Layer. Computer Networks Term B14

Introduction to the Application Layer. Computer Networks Term B14 Introduction to the Application Layer Computer Networks Term B14 Intro to Application Layer Outline Current Application Layer Protocols Creating an Application Application Architectures Client-Server P2P

More information

Lecture 11. Transport Layer (cont d) Transport Layer 1

Lecture 11. Transport Layer (cont d) Transport Layer 1 Lecture 11 Transport Layer (cont d) Transport Layer 1 Agenda The Transport Layer (continue) Connection-oriented Transport (TCP) Flow Control Connection Management Congestion Control Introduction to the

More information

Word Found Meaning Innovation

Word Found Meaning Innovation AP CSP Quarter 1 Study Guide Vocabulary from Unit 1 & 3 Word Found Meaning Innovation A novel or improved idea, device, product, etc, or the development 1.1 thereof Binary 1.2 A way of representing information

More information

CPS 214: Computer Networks. Slides by Adolfo Rodriguez

CPS 214: Computer Networks. Slides by Adolfo Rodriguez CPS 214: Computer Networks Slides by Adolfo Rodriguez Paper Evaluations 1 page maximum evaluation of reading for each class Evaluations submitted in advance of class from course Web page Describe: Biggest

More information

Computer Networks. More on Standards & Protocols Quality of Service. Week 10. College of Information Science and Engineering Ritsumeikan University

Computer Networks. More on Standards & Protocols Quality of Service. Week 10. College of Information Science and Engineering Ritsumeikan University Computer Networks More on Standards & Protocols Quality of Service Week 10 College of Information Science and Engineering Ritsumeikan University Introduction to Protocols l A protocol is a set of rules

More information

Reliable File Transfer

Reliable File Transfer Due date Wednesday, Mar 14, 11:59pm Reliable File Transfer CS 5565 Spring 2012, Project 2 This project is worth 100 points. You may form teams of up to two students for this project. You are not required

More information

Replicating Chaos Vehicle Replication in Watch Dogs 2. Matt Delbosc Team Lead Programmer Ubisoft Toronto

Replicating Chaos Vehicle Replication in Watch Dogs 2. Matt Delbosc Team Lead Programmer Ubisoft Toronto Replicating Chaos Vehicle Replication in Watch Dogs 2 Matt Delbosc Team Lead Programmer Ubisoft Toronto Network architecture 4-player peer-to-peer No single server Lots of entities to replicate Distributed

More information

Internet II. CS10 : Beauty and Joy of Computing. cs10.berkeley.edu. !!Senior Lecturer SOE Dan Garcia!!! Garcia UCB!

Internet II. CS10 : Beauty and Joy of Computing. cs10.berkeley.edu. !!Senior Lecturer SOE Dan Garcia!!!  Garcia UCB! cs10.berkeley.edu CS10 : Beauty and Joy of Computing Internet II!!Senior Lecturer SOE Dan Garcia!!!www.cs.berkeley.edu/~ddgarcia CS10 L17 Internet II (1)! Why Networks?! Originally sharing I/O devices

More information

Transport Layer. Chapter 3: Transport Layer

Transport Layer. Chapter 3: Transport Layer Transport Layer EECS 3214 Slides courtesy of J.F Kurose and K.W. Ross, All Rights Reserved 29-Jan-18 1-1 Chapter 3: Transport Layer our goals: understand principles behind layer services: multiplexing,

More information

Chapter 2. Application Layer. Chapter 2: Application Layer. Application layer - Overview. Some network apps. Creating a network appication

Chapter 2. Application Layer. Chapter 2: Application Layer. Application layer - Overview. Some network apps. Creating a network appication Mobile network Chapter 2 The Yanmin Zhu Department of Computer Science and Engineering Global ISP Home network Regional ISP Institutional network CSE Department 1 CSE Department 2 Application layer - Overview

More information

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition ELEC / COMP 177 Fall 2012 Some slides from Kurose and Ross, Computer Networking, 5 th Edition Homework #1 Assigned today Due in one week Application layer: DNS, HTTP, protocols Recommend you start early

More information

Distributed Systems Exam 1 Review Paul Krzyzanowski. Rutgers University. Fall 2016

Distributed Systems Exam 1 Review Paul Krzyzanowski. Rutgers University. Fall 2016 Distributed Systems 2015 Exam 1 Review Paul Krzyzanowski Rutgers University Fall 2016 1 Question 1 Why did the use of reference counting for remote objects prove to be impractical? Explain. It s not fault

More information

Congestion Control. Lecture 12: TCP Friendliness, DCCP, NATs, and STUN. Chiu Jain Phase Plots. Fair A=B. Responding to Loss. Flow B rate (bps) t 1 t 3

Congestion Control. Lecture 12: TCP Friendliness, DCCP, NATs, and STUN. Chiu Jain Phase Plots. Fair A=B. Responding to Loss. Flow B rate (bps) t 1 t 3 Congestion Control Lecture 12: TCP Friendliness, DCCP, s, and STUN TCP dynamically adapts its rate in response to congestion AIMD causes flows to converge to fair goodput But how do losses (e.g., bit errors)

More information

Lecture 12: TCP Friendliness, DCCP, NATs, and STUN

Lecture 12: TCP Friendliness, DCCP, NATs, and STUN Lecture 12: TCP Friendliness, DCCP, NATs, and STUN Congestion Control TCP dynamically adapts its rate in response to congestion AIMD causes flows to converge to fair goodput But how do losses (e.g., bit

More information

Lecture 10: TCP Friendliness, DCCP, NATs, and STUN

Lecture 10: TCP Friendliness, DCCP, NATs, and STUN Lecture 10: TCP Friendliness, DCCP, NATs, and STUN TCP Friendliness Congestion Control TCP dynamically adapts its rate in response to congestion AIMD causes flows to converge to fair goodput But how do

More information

Foundations of Telematics

Foundations of Telematics Foundations of Telematics Chapter 2 Application Layer Principles of network applications Important application protocols Using sockets Acknowledgement: These slides have been prepared by J.F. Kurose and

More information

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 4

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 4 CMPE 150/L : Introduction to Computer Networks Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 4 1 Lab schedule confirmation Mondays, 12:00-2:00pm Tuesdays, 11:00am-1:00pm Wednesdays, 4:00-6:00pm

More information

IEMS 5780 / IERG 4080 Building and Deploying Scalable Machine Learning Services

IEMS 5780 / IERG 4080 Building and Deploying Scalable Machine Learning Services IEMS 5780 / IERG 4080 Building and Deploying Scalable Machine Learning Services Lecture 7 - Network Programming Albert Au Yeung 18th October, 2018 1 / 48 Computer Networking 2 / 48 Data Communication Exchange

More information

Mobile Touch Floating Joysticks with Options version 1.1 (Unity Asset Store) by Kevin Blake

Mobile Touch Floating Joysticks with Options version 1.1 (Unity Asset Store) by Kevin Blake Mobile Touch Floating Joysticks with Options version 1.1 (Unity Asset Store) by Kevin Blake Change in version 1.1 of this document: only 2 changes to this document (the unity asset store item has not changed)

More information

DISTRIBUTED NETWORK COMMUNICATION FOR AN OLFACTORY ROBOT ABSTRACT

DISTRIBUTED NETWORK COMMUNICATION FOR AN OLFACTORY ROBOT ABSTRACT DISTRIBUTED NETWORK COMMUNICATION FOR AN OLFACTORY ROBOT NSF Summer Undergraduate Fellowship in Sensor Technologies Jiong Shen (EECS) - University of California, Berkeley Advisor: Professor Dan Lee ABSTRACT

More information

Adding a Trigger to a Unity Animation Method #2

Adding a Trigger to a Unity Animation Method #2 Adding a Trigger to a Unity Animation Method #2 Unity Version: 5.0 Adding the GameObjects In this example we will create two animation states for a single object in Unity with the Animation panel. Our

More information

UDP and TCP. Introduction. So far we have studied some data link layer protocols such as PPP which are responsible for getting data

UDP and TCP. Introduction. So far we have studied some data link layer protocols such as PPP which are responsible for getting data ELEX 4550 : Wide Area Networks 2015 Winter Session UDP and TCP is lecture describes the two most common transport-layer protocols used by IP networks: the User Datagram Protocol (UDP) and the Transmission

More information

CSCD 330 Network Programming

CSCD 330 Network Programming CSCD 330 Network Programming Lecture 9 Transport Layer Winter 2019 Reading: Begin Chapter 3 Some Material in these slides from J.F Kurose and K.W. Ross All material copyright 1996-2007 1 Outline Overview

More information

MIDTERM EXAMINATION #2 OPERATING SYSTEM CONCEPTS U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E

MIDTERM EXAMINATION #2 OPERATING SYSTEM CONCEPTS U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E MIDTERM EXAMINATION #2 OPERATING SYSTEM CONCEPTS 03-60-367-01 U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E Intersession 2008 Last Name: First Name: Student ID: PLEASE

More information