Peer to Peer Instant Messaging

Size: px
Start display at page:

Download "Peer to Peer Instant Messaging"

Transcription

1 Peer to Peer Instant Messaging Assignment in Computer Networks I, Department of Information Technology, Uppsala University. Overview In this assignment you will implement an instant messaging system that uses a central server to handle user status. The assignment is divided into four stages, and in each stage you will extend your client to handle more types of messages and implement higher functionality. At the end of the assignment you will have an instant messaging client that can talk to other clients and maintain an encrypted connection to the server. 1

2 1 General Problem Description The purpose of this assignment is to implement a simple peer-to-peer instant messaging client with a central server that keeps track of who is online. All communication will use TCP with messages in clear text. This is to make debugging easier. A code skeleton in C is provided for the client. You are not required to use this skeleton, but you are highly recommended to do so. The code skeleton implements list handling, and parsing input from the standard input among other things. The idea is that you should focus on the network programming part, and should not have to care about things not relating to this subject. A java skeleton is also available but it is untested and there will be no java specific support. This assignment is divided into four stages, which are: 1. Implement simple authorization with the server. 2. Handle PING-messages. 3. Handle the list of users online. 4. Communicating with other peers. To see a full description of the stages see section 2. All the messages are described in section 3, and the code skeleton in 4. The stages build on each other, and you should reuse and extend your code from a previous stage when you implement the current one. Some stages will force you to change things in the code from previous stages, but the changes will be small. See section 5 for information about hand-in instructions. It is important that you follow these instructions to pass the assignment! 1.1 Important Things to Think About The messages are in clear text, remember that when debugging. Never send ints and other types, messages should only be character strings. Remember to use network byte order. If you don t, you will run into problem when dealing with port numbers and IP-addresses. Check return values from system calls, as for example send or recv. These can tell you if the server or another peer has closed the connection. 2

3 If there is an internal error in the server that it cannot deal with, for example it runs out of memory it will terminate your connection. If that happens, try re-connecting. Beej s socket guide is an excellent source of information on socket programming. You can find it at: 3

4 2 Project Stages Stage 1: Connecting to, and authorizing with, the server In short: 1. Connect to the server 2. Implement and send an ATH1 message to initiate authorization with the server. 3. Handle the ATH2 response to the server 4. Handle the ERRO messages from the server. In this part of the lab you will use simple client/server interaction to register your peer at the server. You will need to compose a correct ATH1 command, send it to the server and handle the ATH2 message the server will send back. Refer to the Messages chapter to see how these messages are defined. You can safely drop any other messages you receive from the server. However, it might be worthwhile to handle the ERRO messages the server will send if something is wrong, as it could help you with debugging. These messages contain a string with the error, and should give you a hint of what is wrong. If you keep getting NO from the server, make sure that your ATH1 message is correctly formatted. There is no need to log out, simply closing the socket will make the server register you as offline. Functions to implement/edit connecttohost(): Set up a socket to the server. authenticate(): Send your login information to the server. parsemessagefromserver(): Handle data from the server. Remember to check return values from functions! Testing Test this stage by connecting to the server and authorize and then check the server web page to see if it has correctly identified you. If it has identified you, your peer should appear in the Users online table. 4

5 When the server is convinced you have successfully accomplished this stage it will record stage one done, which you can see on the same web-page. 5

6 Stage 2: Handling PINGs In short: 1. Answer PING messages sent by the server. Extend the code from stage 1 so that it answers the PING messages sent periodically from the server. The server uses these messages to ensure that the peers registered as online really are online. As soon as the server receives PONG from you in response to a PING sent by the server it will register you as having finished the second stage. After this the server will consider you offline if you fail to answer to two consecutive PING messages. Functions to implement/edit parsemessagefromserver(): Handle data from the server. Testing Check your current status on the servers web page when you think you have completed this stage. 6

7 Stage 3: Handling online messages In short: 1. Handle ONLN and OFLN messages sent from the server. 2. Keep track of other peers that are online. 3. Rewrite the PONG message. In order to keep track of which peers that are currently online each peer must maintain a list of online users. The server has a master list with all peers that are online and will send this out to a peer as soon as the peer is authorized. After this the server will only send out changes to this list when new users go online or when users go offline. Observe that your own peer will be present in the first list you receive from the server as you go online! The list will come as a series of ONLN messages, which you must handle and insert the given users in your online list. Note that there is no guarantee that the ONLN messages will appear in any special order, and there might be other messages between the messages (e.g. PING messages). When new users come online you will receive ONLN messages and when users go offline you will receive OFLN messages, and you have to update your user-list to reflect the users currently online. In order for the server to know that you have completed this stage it needs to know that you have a correct view of who are online. To achieve this you will now need to change the PONG message so it includes the numbers of users online and the user id s of all the users you think are online. The pong message will now look Where N is the number of users online and uid 1 through uid N are their user ids # and % as start, split and end token, note that this is not how it will look in reality, the real start, split and end tokens are not printable characters). Please observe that it may take a couple of PONG-messages before the server is convinced that you have finished this stage, as some user may go online or offline while you are sending this message. This will make the server falsely believe that your user list is incorrect, but this should even itself out after a few messages. 7

8 Functions to implement/edit parsemessagefromserver(): Handle data from the server. Also, you need to have a Userlist to store user information in. Take a long good look at the functions in userlist.h. Testing This stage can be tested by comparing your view of who are online is the same as the one presented on the servers web page, and that the server has registered you as having completed stage 3. 8

9 Stage 4: Messages to other peers In short: 1. Establishing connections with other peers 2. Sending and receiving MESG messages Now you will begin communicating with other peers that are online. The peers communicate by sending and receiving MESG messages containing the user id of the peer you are trying to talk to and the text of the message. After a successful authentication it s time to start listening for incoming connections. You should bind 1 a listening socket to the port stored in the variable listenport. It s best to do it at the beginning of the program so you know if the port is already in use or not, although It s fine to do it later. When you have authenticated yourself, begin listening on that socket. Functions to implement/edit sendmessage(): Send messages to peers (and the server too). parsemessagefromclient(): Handle data from other peers. Testing Test this stage by talking to other peers that are online. If you cannot initiate a connection with the other peers, you can try the peer-bot, with whom you can communicate. Managing to talk to the peer-bot is also required to convince the server that you have completed this stage. To communicate with the peer-bot you need to send a special command message to the server in the form of a regular MESG message with the text testmsg. The server has uid 0, so the command at the prompt in the client would look something like: msg 0 testmsg Once the server gets this message it will inform the peer-bot that you are ready to talk to it, and you will receive a message from the bot. Respond to the question in the message, and hopefully you will receive a message from the bot telling you that you have completed stage 4. If something is wrong, error. 1 Take a look at the socket reuse option so you can avoid the socket already in use 9

10 you will receive either an ERRO message from the server or a message from the peer-bot. 10

11 3 Messages All messages in this assignment are clear text strings, to make debugging easier. However, when you start encrypting messages, this will of course not be true anymore. Note that this means you will always have to convert numbers to strings if you want to send them in a message. The messages are all on the same form: START_TOKEN type SPLIT_TOKEN text of message END_TOKEN Where the text of the message can contain several SPLIT TOKEN to divide the message in several fields. The type field is always four bytes long, and the type is always in upper-case. The START TOKEN is defined to be ASCII character 1, SPLIT TOKEN is ASCII character 30 and END TOKEN is character 4. However, you should not need to worry about this, as they are defined in common.h and you can match them for example like this: if(char == END_TOKEN) {... } In the description below, the START TOKEN is represented SPLIT TOKEN as # and END TOKEN as %. Note that this is just for readability, as the real tokens are below ASCII character 32 and therefore not printable. The messages are: MESG This is the message type for sending messages to other peers and contains your own uid and the text of the message. It is of the of message% ERRO This is an error message the server will send to you when it has gotten an ill formatted message from you or was expecting another message. The text of the message describes what the server thinks the problem of error% ONLN Describes that the user with user id uid is online at address address and listening for connections from other peers at port port. 11

12 @ONLN#uid#address#port% OFLN The user with user id uid has gone PING This message is sent periodically by the server, and should be answered by a PONG PONG The response to the PING message. This message is special as it has two different forms, depending on how far in the assignment you are. Up to stage two it will be on the In stage 3 and onwards you will need to include the number of users, say N, and the user ids of all these users. This is to make it possible for the server to auto-correct you user list. With N users the message would look ATH1 The message you will send to the server to initiate simple authorization without encryption. Contains your user id and password in clear text, and the port you are listening for connections from other peers ATH2 The response from the server to the ATH1 message. The response is either OK, if username and password were correct, NO if they were not, and AC if the server thinks you are already Of the above messages you need to be able to send: PONG to the server in response to PING. 12

13 ATH1 to the server to initiate simple authorization. MESG to other peers to communicate with them, and to send commands to the server. And you have to receive: PING from the server. ATH2 from the server which tells you if are authorized or not. ERRO from the server, which you can use for help with debugging. ONLN and OFLN from the server, telling you when users go online and offline. MESG from other peers. 13

14 4 Code Skeleton The code skeleton for the assignment can be downloaded from the course web page. It contains two directories: common/ and skel/. p2p/ -- common/ : The code library. Don t edit these files! --- commandparser.[ch] : For parsing standard input. Take a look. --- common.h : Common #defines. Take a look. --- crypto.[ch] : Cryptography functions. Take a look. --- messagelist.[ch] : The message list modules. no peeking! --- parsehelp.[ch] : Functions for helping you parse messages. You don t have to use them. --- userlist.[ch] : The user list modules. Take a look. -- skel/ : The skeleton. ---.p2prc : Config file for the client. Edit. --- Makefile : Makefile, just edit if you add new files or if you need to compile it on another platform (not encouraged though). --- README : README file. Light information about running the client. --- client.c : The main program. Edit this. --- useraction.[ch] : More functions. Edit this one too. Figure 1: Directory structure of source code tree. To make the client program just type make (or make linux ) in the skel/ directory. This should give you a client binary. Until you edit any files 2, this will compile the program and running it will give you the pretty p2p$ prompt. So far it can only handle the quit and help commands and it s your job to implement the rest of them. 2 Hopefully it will compile after you have edited files too :-) 14

15 5 Hand-in Instructions To pass the assignment you need to provide the complete source code for the stages you are supposed to solve. It is important that you follow the steps below: 1. Make sure that the client automatically compiles into a executable file by a make from the directory skel/. 2. Create a tar ball with the complete source tree as shown in figure 1. Name the tar ball p2p-{username}.tar.gz. Example: > tar zcvf p2p-krmo5621.tar.gz p2p/ 3. Fill in the form at the back of this compendium. Do not forget to provide a path to the source code in your home directory. Also make sure that the tar ball has the right permissions, i.e. it must be readable by others. 4. Hand in the form. If you do not follow these instructions your assignment will automatically be handed back to you without corrections. 15

16 Peer to Peer Instant Messaging Name(s): Login Name: Course and Course Code: Path to code: (e.g., /home/gujo8932/p2p-gujo8932.tar.gz) Date: Signature: 1

Peer to Peer Instant Messaging

Peer to Peer Instant Messaging Peer to Peer Instant Messaging Assignment in Data communication I, Department of Information Technology, Uppsala University. Overview In this programming exercise you will implement a peer to peer instant

More information

P2P Programming Assignment

P2P Programming Assignment P2P Programming Assignment Overview This project is to implement a Peer-to-Peer (P2P) networking project similar to a simplified Napster. You will provide a centralized server to handle cataloging the

More information

CS 426 Fall Machine Problem 1. Machine Problem 1. CS 426 Compiler Construction Fall Semester 2017

CS 426 Fall Machine Problem 1. Machine Problem 1. CS 426 Compiler Construction Fall Semester 2017 CS 426 Fall 2017 1 Machine Problem 1 Machine Problem 1 CS 426 Compiler Construction Fall Semester 2017 Handed Out: September 6, 2017. Due: September 21, 2017, 5:00 p.m. The machine problems for this semester

More information

EECS 211 Lab 2. Getting Started. Getting the code. Windows. Mac/Linux

EECS 211 Lab 2. Getting Started. Getting the code. Windows. Mac/Linux EECS 211 Lab 2 Control Statements, Functions and Structures Winter 2017 Today we are going to practice navigating in the shell and writing basic C++ code. Getting Started Let s get started by logging into

More information

Programming Assignment III

Programming Assignment III Programming Assignment III First Due Date: (Grammar) See online schedule (submission dated midnight). Second Due Date: (Complete) See online schedule (submission dated midnight). Purpose: This project

More information

Project 1 Balanced binary

Project 1 Balanced binary CMSC262 DS/Alg Applied Blaheta Project 1 Balanced binary Due: 7 September 2017 You saw basic binary search trees in 162, and may remember that their weakness is that in the worst case they behave like

More information

Incident Response Tools

Incident Response Tools Incident Response Tools James Madison University Dept. of Computer Science June 13, 2013 1 Introduction Being successfully attacked is inevitable. A determined hacker WILL be able to penetrate your network.

More information

CS344/444 Spring 2007 Project 1 Instant Messaging Client and Server

CS344/444 Spring 2007 Project 1 Instant Messaging Client and Server CS344/444 Spring 2007 Project 1 Instant Messaging Client and Server Sandeep Sarat Andreas Terzis February 19, 2007 1 Introduction For your first project you will have to write a client and a server for

More information

Programming Project #1

Programming Project #1 CS255: Cryptography and Computer Security Winter 2008 Due: Friday, February 8th, 2008. Programming Project #1 1 Overview For the first programming assignment you will be implementing a password manager,

More information

Assignment 1: Plz Tell Me My Password

Assignment 1: Plz Tell Me My Password Assignment 1: Plz Tell Me My Password Part I Due: 11:59 pm, September 23, 2013 Part II Due : 11:59 pm, September 27, 2013 1 Introduction The objective of this assignment is to gain experience in: socket

More information

Authentication CS 4720 Mobile Application Development

Authentication CS 4720 Mobile Application Development Authentication Mobile Application Development System Security Human: social engineering attacks Physical: steal the server itself Network: treat your server like a 2 year old Operating System: the war

More information

Program Assignment 2

Program Assignment 2 Program Assignment 2 CMSC 417 Fall 2014 September 16, 2014 1 Deadline September 30, 2014. 2 Objective In this assignment you will write the server program which will communicate using sockets with the

More information

For Volunteers An Elvanto Guide

For Volunteers An Elvanto Guide For Volunteers An Elvanto Guide www.elvanto.com Volunteers are what keep churches running! This guide is for volunteers who use Elvanto. If you re in charge of volunteers, why not check out our Volunteer

More information

Computer Networks CS3516 B Term, 2013

Computer Networks CS3516 B Term, 2013 Computer Networks CS3516 B Term, 2013 Project 1 Project Assigned: October 31 Checkpoint: November 07 12:01 AM Due: November 14 12:01 AM Networks - Project 1 1 What You Will Do In This Project. The purpose

More information

NLUUG, Bunnik CloudABI: safe, testable and maintainable software for UNIX Speaker: Ed Schouten,

NLUUG, Bunnik CloudABI: safe, testable and maintainable software for UNIX Speaker: Ed Schouten, NLUUG, Bunnik 2015-05-28 CloudABI: safe, testable and maintainable software for UNIX Speaker: Ed Schouten, ed@nuxi.nl Programme What is wrong with UNIX? What is CloudABI? Use cases for CloudABI Links 2

More information

Lesson 1A - First Java Program HELLO WORLD With DEBUGGING examples. By John B. Owen All rights reserved 2011, revised 2015

Lesson 1A - First Java Program HELLO WORLD With DEBUGGING examples. By John B. Owen All rights reserved 2011, revised 2015 Lesson 1A - First Java Program HELLO WORLD With DEBUGGING examples By John B. Owen All rights reserved 2011, revised 2015 Table of Contents Objectives Hello World Lesson Sequence Compile Errors Lexical

More information

Operating Systems Design Exam 3 Review: Spring 2011

Operating Systems Design Exam 3 Review: Spring 2011 Operating Systems Design Exam 3 Review: Spring 2011 Paul Krzyzanowski pxk@cs.rutgers.edu 1 1. Why does an IP driver need to use ARP, the address resolution protocol? IP is a logical network. An IP address

More information

6.824 Lab 2: A concurrent web proxy

6.824 Lab 2: A concurrent web proxy Page 1 of 6 6.824 - Fall 2002 6.824 Lab 2: A concurrent web proxy Introduction In this lab assignment you will write an event-driven web proxy to learn how to build servers that support concurrency. For

More information

Configuring Microsoft Outlook to Connect to Hosted Exchange Service

Configuring Microsoft Outlook to Connect to Hosted Exchange Service Configuring Microsoft Outlook to Connect to Hosted Exchange Service Configuring Microsoft Outlook for Hosted Exchange Service Version: 1.0 Updated on: April 27, 2011 Page 1 of 7 TABLE OF CONTENTS Configuring

More information

CN Assignment I. 1. With an example explain how cookies are used in e-commerce application to improve the performance.

CN Assignment I. 1. With an example explain how cookies are used in e-commerce application to improve the performance. CN Assignment I 1. With an example explain how cookies are used in e-commerce application to improve the performance. In an e-commerce application, when the user sends a login form to the server, the server

More information

CS143 Handout 05 Summer 2011 June 22, 2011 Programming Project 1: Lexical Analysis

CS143 Handout 05 Summer 2011 June 22, 2011 Programming Project 1: Lexical Analysis CS143 Handout 05 Summer 2011 June 22, 2011 Programming Project 1: Lexical Analysis Handout written by Julie Zelenski with edits by Keith Schwarz. The Goal In the first programming project, you will get

More information

CS131 Compilers: Programming Assignment 2 Due Tuesday, April 4, 2017 at 11:59pm

CS131 Compilers: Programming Assignment 2 Due Tuesday, April 4, 2017 at 11:59pm CS131 Compilers: Programming Assignment 2 Due Tuesday, April 4, 2017 at 11:59pm Fu Song 1 Policy on plagiarism These are individual homework. While you may discuss the ideas and algorithms or share the

More information

TALENT Part 1 page 1 of 1

TALENT Part 1 page 1 of 1 Part I Beginning WebCT Course Designer Skills. This sections covers: MyWebCT (a global WebCT user account) Differences between course designer and student accounts How to create a single student account

More information

Note: CONTENTS. 1. Outlook Express (IMAP) 2. Microsoft Outlook (IMAP) 3. Eudora (IMAP) 4. Thunderbird (IMAP) 5. Outlook Express (POP)

Note: CONTENTS. 1. Outlook Express (IMAP) 2. Microsoft Outlook (IMAP) 3. Eudora (IMAP) 4. Thunderbird (IMAP) 5. Outlook Express (POP) CONTENTS 1. Outlook Express (IMAP) 2. Microsoft Outlook (IMAP) 3. Eudora (IMAP) 4. Thunderbird (IMAP) 5. Outlook Express (POP) Note: Prior to configuring, please ensure that your ID is enabled for POP/IMAP.

More information

Secure Communications Over a Network

Secure Communications Over a Network Secure Communications Over a Network Course: MITS:5400G Proffessor: Dr. Xiaodong Lin By: Geoff Vaughan 100309160 March 20th 2012 Abstract The purpose of this experiment is to transmit an encrypted message

More information

Programming Assignment 3

Programming Assignment 3 UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 3550 Section 002 Communication Networks Spring 2018 Programming Assignment 3 Introduction Having created a TCP client in programming assignment 2, it s

More information

User Manual of Webmail Version 5

User Manual of Webmail Version 5 User Manual of Webmail Version 5 English Version: 1.0 Page 1 of 13 TABLE OF CONTENTS 1. ACCESS...3 1.1 Accessing to Webmail 5...3 2. COMPOSE AND SEND E-MAIL MESSAGE...4 2.1 Composing a new E-mail message...4

More information

Graph Representation and Cycle Detection

Graph Representation and Cycle Detection Graph Representation and Cycle Detection Introduction Problems that can be represented with a graph and an algorithm show up frequently in Computer Science. In this project, we will try two different ways

More information

ASSA ABLOY. CLIQ Connect PC Application User Manual

ASSA ABLOY. CLIQ Connect PC Application User Manual ASSA ABLOY CLIQ Connect PC Application User Manual Table of Contents 1 INTRODUCTION... 3 2 VERSIONS... 3 2.1 CLIQ Web Manager/Remote... 3 2.2 Key Firmware... 3 2.3 Microsoft Windows... 3 3 INSTALLATION...

More information

E-Portfolio User Guide for Verifiers

E-Portfolio User Guide for Verifiers Wessex Public Health Practitioner Registration Support Scheme E-Portfolio User Guide for Verifiers Contents 1. Logging in for the first time 2. Finding your practitioner 3. Changing your password 4. Changing

More information

CS155: Computer Security Spring Project #1

CS155: Computer Security Spring Project #1 CS155: Computer Security Spring 2018 Project #1 Due: Part 1: Thursday, April 12-11:59pm, Parts 2 and 3: Thursday, April 19-11:59pm. The goal of this assignment is to gain hands-on experience finding vulnerabilities

More information

Lab Assignment 3 for ECE374

Lab Assignment 3 for ECE374 Lab Assignment 3 for ECE374 Posted: 02/25/18 Due: 03/08/18 In this lab, we ll take a quick look at the UDP and TCP transport protocol. Whenever possible you should hand in a Wireshark screenshot that you

More information

Project #1: Tracing, System Calls, and Processes

Project #1: Tracing, System Calls, and Processes Project #1: Tracing, System Calls, and Processes Objectives In this project, you will learn about system calls, process control and several different techniques for tracing and instrumenting process behaviors.

More information

Outlook 2013: Configure IMAP/POP/SMTP

Outlook 2013: Configure IMAP/POP/SMTP Outlook 2013: Configure IMAP/POP/SMTP April 10, 2015 Table of Contents Introduction... 3 Email Settings... 3 IMAP... 3 POP... 3 SMTP... 3 Process Overview... 3 Anatomy of an Email Address... 4 Why is My

More information

A practicalintroduction to embedded programming. Brian Plancher 10/17/2018

A practicalintroduction to embedded programming. Brian Plancher 10/17/2018 A practicalintroduction to embedded programming Brian Plancher Brian_Plancher@g.harvard.edu 10/17/2018 This week s task is simple: 1. Since the boards you made 2 weeks ago are perfect and are still in

More information

Assignment pts

Assignment pts CSE 127: Computer Security - Fall 2014 Assignment 4 120 pts Due November 4 10:00 P.M. PDT This is a three part assignment. For the first part of the assignment, you will create an AppArmor profile for

More information

Eat (we provide) link. Eater. Goal: Eater(Self) == Self()

Eat (we provide) link. Eater. Goal: Eater(Self) == Self() 15-251: Great Theoretical Ideas Guru: Yinmeng Zhang Assignment 12 Due: December 6, 2005 1 Reading Comprehension (0 points) Read the accompanying handout containing Ken Thompson s Turing Award Lecture,

More information

Module 6 ibgp and Basic ebgp

Module 6 ibgp and Basic ebgp ISP Workshop Lab Module 6 ibgp and Basic ebgp Objective: Simulate four different interconnected ISP backbones using a combination of OSPF, internal BGP, and external BGP. Prerequisites: Module 1 Topology

More information

How to Secure SSH with Google Two-Factor Authentication

How to Secure SSH with Google Two-Factor Authentication How to Secure SSH with Google Two-Factor Authentication WELL, SINCE IT IS QUITE COMPLEX TO SET UP, WE VE DECIDED TO DEDICATE A WHOLE BLOG TO THAT PARTICULAR STEP! A few weeks ago we took a look at how

More information

FIT 100: Fluency with Information Technology

FIT 100: Fluency with Information Technology FIT 100: Fluency with Information Technology Lab 1: UW NetID, Email, Activating Student Web Pages Table of Contents: Obtain a UW Net ID (your email / web page identity):... 1 1. Setting Up An Account...

More information

PROGRAMMING ASSIGNMENTS 3 & 4 TAO

PROGRAMMING ASSIGNMENTS 3 & 4 TAO PROGRAMMING ASSIGNMENTS 3 & 4 TAO INTRODUCTION Create network programs using Socket APIs Language is not limited C, Python, Java, Your program will interact with the CSE3300 server Server is hosted at

More information

Overview. Exercise 0: Implementing a Client. Setup and Preparation

Overview. Exercise 0: Implementing a Client. Setup and Preparation Overview This Lab assignment is similar to the previous one, in that you will be implementing a simple clientserver protocol. There are several differences, however. This time you will use the SOCK_DGRAM

More information

DER GOBBLE. Good Secure Crypto Wallet Practices. What is your wallet?

DER GOBBLE. Good Secure Crypto Wallet Practices. What is your wallet? DER GOBBLE Good Secure Crypto Wallet Practices When it comes to crypto currencies and securing your money, the absolute best 99% guaranteed security for your wallets is YOU. You are the one that will expose

More information

A Tutorial on using Code::Blocks with Catalina 3.0.3

A Tutorial on using Code::Blocks with Catalina 3.0.3 A Tutorial on using Code::Blocks with Catalina 3.0.3 BASIC CONCEPTS...2 PREREQUISITES...2 INSTALLING AND CONFIGURING CODE::BLOCKS...3 STEP 1 EXTRACT THE COMPONENTS...3 STEP 2 INSTALL CODE::BLOCKS...3 Windows

More information

Module 1 Basic Topology and Router Setup

Module 1 Basic Topology and Router Setup Module 1 Basic Topology and Router Setup Objective: Create a basic physical lab with IP addressing and essential router configuration. Ensure that all routers, interfaces, cables and connections are working

More information

0/41. Alice Who? Authentication Protocols. Andreas Zeller/Stephan Neuhaus. Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken

0/41. Alice Who? Authentication Protocols. Andreas Zeller/Stephan Neuhaus. Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken 0/41 Alice Who? Authentication Protocols Andreas Zeller/Stephan Neuhaus Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken The Menu 1/41 Simple Authentication Protocols The Menu 1/41 Simple

More information

The Application Layer HTTP and FTP

The Application Layer HTTP and FTP The Application Layer HTTP and FTP File Transfer Protocol (FTP) Allows a user to copy files to/from remote hosts Client program connects to FTP server provides a login id and password allows the user to

More information

Project 2: Part 1: RPC and Locks

Project 2: Part 1: RPC and Locks Project 2: Part 1: RPC and Locks Due: 11:59PM Thursday, October 14, 2010 1 Introduction In this series of labs, you will implement a fully functional distributed file server with the Frangipani architecture

More information

Web-CAT Guidelines. 1. Logging into Web-CAT

Web-CAT Guidelines. 1. Logging into Web-CAT Contents: 1. Logging into Web-CAT 2. Submitting Projects via jgrasp a. Configuring Web-CAT b. Submitting Individual Files (Example: Activity 1) c. Submitting a Project to Web-CAT d. Submitting in Web-CAT

More information

CS 118 Project Phase 2 P2P Networking

CS 118 Project Phase 2 P2P Networking CS 118 Project Phase 2 P2P Networking Due Monday, March 15 th at 11:59pm Boelter Hall 4428, Box D3/C4 and via Electronic Submission Overview In this phase you will extend your work from Phase 1 to create

More information

INF3190 Mandatory Assignment:

INF3190 Mandatory Assignment: INF3190 Mandatory Assignment: Formally: This assignment must be completed individually. The submission must be approved prior to submission of the Home Exam 1. To pass the submission must meet the requirements

More information

AP Computer Science Principles: Problem Set 1

AP Computer Science Principles: Problem Set 1 AP Computer Science Principles: Problem Set 1 Due date: Friday, September 8, 2017 Instructor: Mr. Alwin Tareen Task Overview Setting up the KeePass password manager for Windows and Mac OS. Linux users

More information

Crystal DM Bot Guide. The How-to of using your new bot.

Crystal DM Bot Guide. The How-to of using your new bot. Crystal DM Bot Guide The How-to of using your new bot. Page 1 Introduction Occasionally you may find yourself tempted to tell your friends all about your new Minecraft server, or dank new alt shop. Sometimes

More information

Protecting and Archiving usernames & passwords

Protecting and Archiving usernames & passwords Protecting and Archiving usernames & passwords Let s face it we all have too many passwords to remember. However, passwords are our first line of defense against keeping the bad guys out and appropriately

More information

Your . A setup guide. Last updated March 7, Kingsford Avenue, Glasgow G44 3EU

Your  . A setup guide. Last updated March 7, Kingsford Avenue, Glasgow G44 3EU fuzzylime WE KNOW DESIGN WEB DESIGN AND CONTENT MANAGEMENT 19 Kingsford Avenue, Glasgow G44 3EU 0141 416 1040 hello@fuzzylime.co.uk www.fuzzylime.co.uk Your email A setup guide Last updated March 7, 2017

More information

MongoDB Security Checklist

MongoDB Security Checklist MongoDB Security Checklist Tim Vaillancourt Sr Technical Operations Architect, Percona Speaker Name `whoami` { name: tim, lastname: vaillancourt, employer: percona, techs: [ mongodb, mysql, cassandra,

More information

Configuring SSH Public Key Authentication

Configuring SSH Public Key Authentication 6AOSCG0060-29A January 2014 Configuration Guide Configuring SSH Public Key Authentication This guide describes how to configure and use Secure Shell (SSH) public key authentication on products running

More information

Fall CSEE W4119 Computer Networks Programming Assignment 1 - Simple Online Bidding System

Fall CSEE W4119 Computer Networks Programming Assignment 1 - Simple Online Bidding System Fall 2012 - CSEE W4119 Computer Networks Programming Assignment 1 - Simple Online Bidding System Prof. Gil Zussman due: Wed. 10/24/2012, 23:55 EST 1 Introduction In this programming assignment, you are

More information

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 31 Static Members Welcome to Module 16 of Programming in C++.

More information

Advanced Computer Architecture Lab 3 Scalability of the Gauss-Seidel Algorithm

Advanced Computer Architecture Lab 3 Scalability of the Gauss-Seidel Algorithm Advanced Computer Architecture Lab 3 Scalability of the Gauss-Seidel Algorithm Andreas Sandberg 1 Introduction The purpose of this lab is to: apply what you have learned so

More information

ESS Security Enhancements

ESS Security Enhancements ESS Security Enhancements payentry.com Employee Self Service Enhancements 1 Table of Contents INTRODUCTION 3 EXISTING EMPLOYEES 3 Existing Employee -Email Address 4 Existing Employee - Username 4 Existing

More information

SchoolBooking LDAP Integration Guide

SchoolBooking LDAP Integration Guide SchoolBooking LDAP Integration Guide Before you start This guide has been written to help you configure SchoolBooking to connect to your LDAP server. Please treat this document as a reference guide, your

More information

CMSC 332 Computer Networking Web and FTP

CMSC 332 Computer Networking Web and FTP CMSC 332 Computer Networking Web and FTP Professor Szajda CMSC 332: Computer Networks Project The first project has been posted on the website. Check the web page for the link! Due 2/2! Enter strings into

More information

CS 211 Programming Practicum Fall 2018

CS 211 Programming Practicum Fall 2018 Due: Wednesday, 11/7/18 at 11:59 pm Infix Expression Evaluator Programming Project 5 For this lab, write a C++ program that will evaluate an infix expression. The algorithm REQUIRED for this program will

More information

Overview. Exercise 0: Implementing a Client. Setup and Preparation

Overview. Exercise 0: Implementing a Client. Setup and Preparation Overview This Lab assignment is similar to the previous one, in that you will be implementing a simple client server protocol. There are several differences, however. This time you will use the SOCK_DGRAM

More information

COMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager

COMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager COMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager Points Possible: 100 Submission via Canvas No collaboration among groups. Students in one group should NOT share any project

More information

Programming Principles 1 (CSC131) & 2 (CSC132) Software usage guide

Programming Principles 1 (CSC131) & 2 (CSC132) Software usage guide School of Sciences Department of Computer Science and Engineering Programming Principles 1 (CSC131) & 2 (CSC132) Software usage guide WHAT SOFTWARE AM I GOING TO NEED/USE?... 3 WHERE DO I FIND THE SOFTWARE?...

More information

EE122 Project 1. Fall Version 0.4. Part A due at 11:50pm on Monday, October 11, 2010 Part B due at 11:50pm on Wednesday, October 27, 2010

EE122 Project 1. Fall Version 0.4. Part A due at 11:50pm on Monday, October 11, 2010 Part B due at 11:50pm on Wednesday, October 27, 2010 EE122 Project 1 Fall 2010 Version 0.4 Part A due at 11:50pm on Monday, October 11, 2010 Part B due at 11:50pm on Wednesday, October 27, 2010 Change History: 01 -> 02: Added clarifications to server requirements:

More information

Advanced option settings on the command line. Set the interface and ports for the OpenVPN daemons

Advanced option settings on the command line. Set the interface and ports for the OpenVPN daemons Advanced option settings on the command line docs.openvpn.net/command-line/advanced-option-settings-on-the-command-line Set the interface and ports for the OpenVPN daemons In the Admin UI under Server

More information

Formatting: Cleaning Up Data

Formatting: Cleaning Up Data Formatting: Cleaning Up Data Hello and welcome to our lesson on cleaning up data, which is one of the final ones in this Formatting Module. What we re going to be doing in this lesson is using some of

More information

CS 450 Introduction to Networking Spring 2014 Homework Assignment 1 File Transfer and Data Bandwidth Analysis Tool

CS 450 Introduction to Networking Spring 2014 Homework Assignment 1 File Transfer and Data Bandwidth Analysis Tool CS 450 Introduction to Networking Spring 2014 Homework Assignment 1 File Transfer and Data Bandwidth Analysis Tool Due: Monday 17 February. Electronic copy due at 10:30 A.M., Optional paper copy may be

More information

Lab 1 - Reliable Data Transport Protocol

Lab 1 - Reliable Data Transport Protocol Lab 1 - Reliable Data Transport Protocol Handout: March 8, 2018 Deadline: March 18 23:00, 2018 (No extension) Assignment overview: In this assignment, you will be implementing the sending and receiving

More information

Writing Code and Programming Microcontrollers

Writing Code and Programming Microcontrollers Writing Code and Programming Microcontrollers This document shows how to develop and program software into microcontrollers. It uses the example of an Atmel ATmega32U2 device and free software. The ATmega32U2

More information

Final Programming Project

Final Programming Project Due Thursday, Dec. 7, at 5:00 pm Logistics This assignment should be completed in groups of 3. This is not optional -- you are not allowed to complete it on your own, or in groups of any other size. I

More information

CIS 505: Software Systems

CIS 505: Software Systems CIS 505: Software Systems Spring 2018 Assignment 2: Email servers MS1 due February 16, 2018, at 10:00pm EST MS2+3 due March 1, 2018, at 10:00pm EST 1 Overview For this assignment, you will build two simple

More information

Digital Media. Seasons Assignment. 1. Copy and open the file seasonsbegin.fla from the Read folder.

Digital Media. Seasons Assignment. 1. Copy and open the file seasonsbegin.fla from the Read folder. Digital Media Seasons Assignment 1. Copy and open the file seasonsbegin.fla from the Read folder. 2. Make a new layer for buttons. Create a button that the user will click to start the interaction. (Be

More information

CS Introduction to Data Structures How to Parse Arithmetic Expressions

CS Introduction to Data Structures How to Parse Arithmetic Expressions CS3901 - Introduction to Data Structures How to Parse Arithmetic Expressions Lt Col Joel Young One of the common task required in implementing programming languages, calculators, simulation systems, and

More information

EE122 Project 1 Fall 2010

EE122 Project 1 Fall 2010 Introduction EE122 Project 1 Fall 2010 Version 0.1 Part A due at 11:50pm on Wednesday, October 6, 2010 Part B due at 11:50pm on Wednesday, October 27, 2010 Change History: The galaxy is in great distress.

More information

UKNova s Getting Connectable Guide

UKNova s Getting Connectable Guide UKNova s Getting Connectable Guide Version 1.2 2010/03/22 1. WHAT IS "BEING CONNECTABLE" AND WHY DO I NEED IT? Being connectable means being able to give back to others it is the fundamental principle

More information

CS2112 Fall Assignment 4 Parsing and Fault Injection. Due: March 18, 2014 Overview draft due: March 14, 2014

CS2112 Fall Assignment 4 Parsing and Fault Injection. Due: March 18, 2014 Overview draft due: March 14, 2014 CS2112 Fall 2014 Assignment 4 Parsing and Fault Injection Due: March 18, 2014 Overview draft due: March 14, 2014 Compilers and bug-finding systems operate on source code to produce compiled code and lists

More information

Copyright

Copyright This video looks at Claim Based/Identity Based systems using Active Directory Federation Services as an example. An example of a claim based system is where the user logs into a system like a web page

More information

CS 447 : Networks and Data Communications Programming Assignment #02 Total Points: 150

CS 447 : Networks and Data Communications Programming Assignment #02 Total Points: 150 CS 447 : Networks and Data Communications Programming Assignment #02 Total Points: 150 Assigned Date : Tuesday, October 23, 2018 Due Date : Tuesday, November 06, 2018 @ 12:29:59 p.m. Overview Your second

More information

Part III Appendices 165

Part III Appendices 165 Part III Appendices 165 Appendix A Technical Instructions Learning Outcomes This material will help you learn how to use the software you need to do your work in this course. You won t be tested on it.

More information

Assignment 3 ITCS-6010/8010: Cloud Computing for Data Analysis

Assignment 3 ITCS-6010/8010: Cloud Computing for Data Analysis Assignment 3 ITCS-6010/8010: Cloud Computing for Data Analysis Due by 11:59:59pm on Tuesday, March 16, 2010 This assignment is based on a similar assignment developed at the University of Washington. Running

More information

Quick Web Development using JDeveloper 10g

Quick Web Development using JDeveloper 10g Have you ever experienced doing something the long way and then learned about a new shortcut that saved you a lot of time and energy? I can remember this happening in chemistry, calculus and computer science

More information

SP LOCKER USER MANUAL. v1.0

SP LOCKER USER MANUAL. v1.0 SP LOCKER USER MANUAL v1.0 Table of Contents 1 Introduction to the SP Locker Security Software... 2 2 Before You Get Started... 2 3 Features... 2 4 Public and Secured Partition... 3 5 How to use SP Locker...

More information

SU 2017 May 11/16 LAB 2: Character and integer literals, number systems, character arrays manipulation, relational operator

SU 2017 May 11/16 LAB 2: Character and integer literals, number systems, character arrays manipulation, relational operator SU 2017 May 11/16 LAB 2: Character and integer literals, number systems, character arrays manipulation, relational operator 0 Problem 0 number bases Visit the website www.cleavebooks.co.uk/scol/calnumba.htm

More information

GMU SWE 443 Software Architecture Spring Lab 2: Implicit-invocation System. Sousa Discuss Feb 23, due March 8

GMU SWE 443 Software Architecture Spring Lab 2: Implicit-invocation System. Sousa Discuss Feb 23, due March 8 GMU SWE 443 Software Architecture Spring 2012 Lab 2: Implicit-invocation System Sousa Discuss Feb 23, due March 8 This lab is to be done individually. If there is something you don t understand, or if

More information

Laboratory 1: Eclipse and Karel the Robot

Laboratory 1: Eclipse and Karel the Robot Math 121: Introduction to Computing Handout #2 Laboratory 1: Eclipse and Karel the Robot Your first laboratory task is to use the Eclipse IDE framework ( integrated development environment, and the d also

More information

Without further ado, let s go over and have a look at what I ve come up with.

Without further ado, let s go over and have a look at what I ve come up with. JIRA Integration Transcript VLL Hi, my name is Jonathan Wilson and I m the service management practitioner with NHS Digital based in the United Kingdom. NHS Digital is the provider of services to the National

More information

Setting up Outlook Express to access your boxes

Setting up Outlook Express to access your  boxes Setting up Outlook Express to access your email boxes Basically there are 2 stages to this process the third only necessary if you use BT Internet as your Internet Service Provider (ISP) 1) Setting up

More information

Request for Comments: 913 September 1984

Request for Comments: 913 September 1984 Network Working Group Request for Comments: 913 Mark K. Lottor MIT September 1984 STATUS OF THIS MEMO This RFC suggests a proposed protocol for the ARPA-Internet community, and requests discussion and

More information

Project 1. 1 Introduction. October 4, Spec version: 0.1 Due Date: Friday, November 1st, General Instructions

Project 1. 1 Introduction. October 4, Spec version: 0.1 Due Date: Friday, November 1st, General Instructions Project 1 October 4, 2013 Spec version: 0.1 Due Date: Friday, November 1st, 2013 1 Introduction The sliding window protocol (SWP) is one of the most well-known algorithms in computer networking. SWP is

More information

Project 1: Scheme Pretty-Printer

Project 1: Scheme Pretty-Printer Project 1: Scheme Pretty-Printer CSC 4101, Fall 2017 Due: 7 October 2017 For this programming assignment, you will implement a pretty-printer for a subset of Scheme in either C++ or Java. The code should

More information

Configuring GNS3 for CCNA Security Exam (for Windows) Software Requirements to Run GNS3

Configuring GNS3 for CCNA Security Exam (for Windows) Software Requirements to Run GNS3 Configuring GNS3 for CCNA Security Exam (for Windows) Software Requirements to Run GNS3 From Cisco s website, here are the minimum requirements for CCP 2.7 and CCP 2.8: The following info comes from many

More information

TELE301 Lab16 - The Secure Shell

TELE301 Lab16 - The Secure Shell TELE301 Lab16 - The Secure Shell Department of Telecommunications May 7, 2002 Contents 1 Introduction 2 2 OpenSSH 2 3 Replacing Telnet 2 4 Logging in without a password 2 5 SSH Agent 3 5.1 SSH Add..............................

More information

Intro to Programming. Unit 7. What is Programming? What is Programming? Intro to Programming

Intro to Programming. Unit 7. What is Programming? What is Programming? Intro to Programming Intro to Programming Unit 7 Intro to Programming 1 What is Programming? 1. Programming Languages 2. Markup vs. Programming 1. Introduction 2. Print Statement 3. Strings 4. Types and Values 5. Math Externals

More information

Lesson 5 Transcript: Client Connectivity

Lesson 5 Transcript: Client Connectivity Lesson 5 Transcript: Client Connectivity Slide 1: Cover Welcome to lesson 5 of the DB2 on Campus Series. Today we are going to talk about client connectivity. My name is Raul Chong, and I'm the DB2 on

More information

MIS2502: Data Analytics MySQL and SQL Workbench. Jing Gong

MIS2502: Data Analytics MySQL and SQL Workbench. Jing Gong MIS2502: Data Analytics MySQL and SQL Workbench Jing Gong gong@temple.edu http://community.mis.temple.edu/gong MySQL MySQL is a database management system (DBMS) Implemented as a server What is a server?

More information

COMP 321: Introduction to Computer Systems

COMP 321: Introduction to Computer Systems Assigned: 3/29/18, Due: 4/19/18 Important: This project may be done individually or in pairs. Be sure to carefully read the course policies for assignments (including the honor code policy) on the assignments

More information