CS3357b Computer Networks I. Mike Burrell. Doing well. undescriptive subject line.

Similar documents
Lab 4: Socket Programming: netcat part

System Calls and Standard I/O

UNIX Sockets. COS 461 Precept 1

Operating Systems. Privileged Instructions

CSC 2405: Computer Systems II

CSci 4211: Data Communications and Computer Networks. Time: Tuesday and Thursday 8:15 to 9:30 am Location: Phyics 170 Spring 2015, 3 Credits

CS 301 Course Information

Operating Systems and Networks

Lecture 24 Systems Programming in C

Introduction to Socket Programming Part I : TCP Clients, Servers; Host information

Software Engineering (CS550)

ICT SEcurity BASICS. Course: Software Defined Radio. Angelo Liguori. SP4TE lab.

Tutorial on Socket Programming

CDA Introduction to Computer Networks

Lecture 1: Course Introduction"

Programming in Python. Basic information. Teaching. Administration Organisation Contents of the Course. Jarkko Toivonen. Overview of Python

Lab 5: BitTorrent Client Implementation

6.S096 Lecture 1 Introduction to C

Communication Networks. Introduction & Socket Programming Yuval Rochman

CMSC Fundamentals of Computer Programming II (C++)

The programming language C. sws1 1

1. COURSE DESCRIPTION

Giving credit where credit is due

COMP 112 Assignment 1: HTTP Servers

Quiz I Solutions MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Department of Electrical Engineering and Computer Science

Project 2: Penetration Testing (Phase II)

WEST LOS ANGELES COLLEGE Psychology 41 Life Span Psychology Course Syllabus Spring 2016 Note: This course runs for 8 weeks only!

Introduction to Psychology Psych 100 Online Syllabus Fall 2014

Socket Programming. Srinidhi Varadarajan

CS 6371: Advanced Programming Languages

ELEN 602: Computer Communications and Networking. Socket Programming Basics

Networks. Inter-process Communication. Pipes. Inter-process Communication

CSCI 4250/6250 Fall 2015 Computer and Network Security. Instructor: Prof. Roberto Perdisci

1.00 Lecture 1. Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders

15-441: Computer Networks Project 1: Internet Relay Chat (IRC) Server

Operating System Structure

Forming a P2P System In order to form a P2P system, the 'central-server' should be created by the following command.

CS162 Operating Systems and Systems Programming Lecture 4. Introduction to I/O (Continued), Sockets, Networking. Recall: Fork and Wait

Lecture 22: C Programming 4 Embedded Systems

Computer Science Theory. From the course description:

Syllabus: IST451. Division of Business and Engineering. Penn State Altoona

An Incomplete C++ Primer. University of Wyoming MA 5310

NS3 Lab 1 TCP/IP Network Programming in C

Project 2: Bejeweled

CS 306/491-3 Linux Programming Spring 2015

Teaching Assistant: Ryan Essex Office Hours: 12pm- 1pm Tuesdays location: DNI 275, B5-6 (the Dornsife Neuroimaging Center)

Introduction. General Course Information. Perspectives of the Computer. General Course Information (cont.) Operating Systems 1/12/2005

MatrixSSL Developer s Guide

CS551 Computer Communications

SJSU School of Journalism and Mass Communications Journalism 132, Section 1 Information Gathering Spring 2015

CSC 234 Game Design M/W 5-7:20PM D207

Siena Heights University at Kellogg Community College MGT 360: Human Resources Management (HRM)

Walt Disney World Operating Hours* November 2016

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Overview. Socket Programming. Using Ports to Identify Services. UNIX Socket API. Knowing What Port Number To Use. Socket: End Point of Communication

CS 103 Lab Linux and Virtual Machines

BUS315: INTRODUCTION TO FINANCIAL MANAGEMENT COURSE OUTLINE

MKT 363 Professional Selling & Sales Management Course Syllabus (Spring 2011)

How To Teach C++ Data Structure Programming

Socket Programming. Request. Reply. Figure 1. Client-Server paradigm

COS 461: Computer Networks

The C Programming Language course syllabus associate level

CSC230 Getting Starting in C. Tyler Bletsch

Undergraduate Course Syllabus

COURSE OUTLINE Business 2257: Accounting and Business Analysis

BIOM 3200 (DE) W14 Mammalian Pharmacology. Course Outline

Linguistics 2288B Introductory General Linguistics

Angels (OpenSSL) and D(a)emons. Athula Balachandran Wolfgang Richter

How To Pass A Customer Service Course At Tstc

IT 201 Information Design Techniques

Application-Level Debugging and Profiling: Gaps in the Tool Ecosystem. Dr Rosemary Francis, Ellexus

W4118 Operating Systems. Junfeng Yang

Introduction to Socket programming using C

COURSE SYLLABUS MGMT 3313 HUMAN RESOURCE MANAGEMENT Spring 2015

School of Kinesiology Faculty of Health Sciences Western University. KIN 2032b Research Design in Human Movement Science January to April 2016

Programming Assignment II Due Date: See online CISC 672 schedule Individual Assignment

MGMT 302(01): Foundations of Management Syllabus Spring Time & Location: W 5:00 p.m. 6:50 p.m. Full Term (1/20/07 5/18/07) Markstein 107

MGMT 102 Business Communications (Spring 2013) Sections 1 and 2: Tuesdays/Thursdays 9:00 to 10:15 am

How To Write Portable Programs In C

COS 217: Introduction to Programming Systems

Programmation Systèmes Cours 4 Runtime user management

OS: IPC I. Cooperating Processes. CIT 595 Spring Message Passing vs. Shared Memory. Message Passing: Unix Pipes

South Plains College: General Course Syllabus

Programming Languages

Socket Programming. Kameswari Chebrolu Dept. of Electrical Engineering, IIT Kanpur

JOU4213 NEWSPAPER DESIGN / FALL 2015

Networks class CS144 Introduction to Computer Networking Goal: Teach the concepts underlying networks Prerequisites:

CS 5480 Computer Networks

A Python Tour: Just a Brief Introduction CS 303e: Elements of Computers and Programming

Transcription:

CS3357b Computer Networks I http://www.csd.uwo.ca/courses/cs3357b Ph.D. student Office: WSC 127 Mike Burrell W 3:30 4:30, Th 1:30 3:30 mburrel@uwo.ca TA hours to be decided Come to lectures (M 4:30 5:30, W 4:30 6:30) Check the website often http://www.csd.uwo.ca/ courses/cs3357b Come my office hours (WSC 127) W 3:30 4:30, Th 1:30 3:30 Doing well Go to the TAs office hours (to be announced) Email myself or the TAs often Start assignments early Be awesome at coding :D started too late undescriptive subject line doesn t describe problem doesn t include code doesn t include error messages not from UWO email account creative grammar/ spelling

CS3357 in subject line rest of subject is descriptive Textbook attached code from UWO account says what s been tried already Peterson and Davie. Computer Networks: A Systems Approach. Edition 4 At least 1 copy at Taylor library It s required just like most computer science textbooks are required (i.e., not at all) Kurose and Ross is also very good Extra material I say again: check the website often! Links to extra material, websites, etc., will pop up to supplement the textbook Reading the textbook will not give you everything you need to know for this course! Evaluation 4 assignments (worth 5%, 10%, 10% and 10%) Midterm: 25% Final exam: 40% To get 50%: 50% on exams, 40% on assignments To get 60%: 50% on exams, 60% on assignments

Assignments Must run on department machines (GAUL) You can work on your home machine if you have Unix (e.g., Linux, BSD, OS X, or even Windows with cygwin) Must be done in C Must use Makefiles (for use with gmake) Assignments All assignments are given out on the webpage, so check it often! Assignment 1 is already up! Assignments are to be done individually! Do not let others see your assignment! Do not look at others assignments! Coding standards Use multiple.c files Usually I won t tell you how to break it up, but you will be graded on it ;) This requires you use.h files! Running gmake should compile all executables Running gmake test should compile and execute a simple test suite Assignment submission Both paper and electronic submissions are required Electronic submissions are due one minute past 11:59pm on the given due date Paper submissions are due 5pm the following day

Late assignments 5% per day (Saturday+Sunday are 1 day) Assignments will not be accepted after 4 days late 4 late coupons (removes late penalty for 1 day) Late coupons do not let you hand something in more than 4 days late! Ethical Conduct Summary: don t be unethical, jackass You MUST adhere to Rules of Ethical Conduct http://www.csd.uwo.ca/ethical_conduct.htm You MUST not commit any Scholastic Offences: http://www.csd.uwo.ca/undergrad/ #include <unistd.h> ssize_t read(int fildes, void *buf, size_t nbyte); ssize_t write(int fildes, const void *buf, size_t nbyte); Socket Programming Textbook chapter: 1.4 How do I find out more information? man -s 2 read Write to standard out write(1, Hello world!\n, 13); Echo from standard in char buf[50]; int num_chars = read(0, buf, sizeof buf); write(1, buf, num_chars);

#include <unistd.h> ssize_t read(int fildes, void *buf, size_t nbyte); ssize_t write(int fildes, const void *buf, size_t nbyte); Note! The textbook uses the system calls recv and send instead of read and write Either way works for our purposes! Consider read synonymous with recv (when flags=0) and write synonymous with send (when flags=0) #include <unistd.h> ssize_t read(int fildes, void *buf, size_t nbyte); ssize_t write(int fildes, const void *buf, size_t nbyte); What are read and write good for? Dealing with stdin (fildes = 0), stdout (fildes = 1), stderr (fildes = 2) Read from and write to files! What is a file descriptor? open gave you an integer (file descriptor) which allows you to read from or write to a specific file on the filesystem Process A Hello World! File Foo connect lets us do the same thing, but reading/writing over the network! Hello World! Process A on machine Z Process B on machine Y

What are sockets? They re just file descriptors! Let you read and write just like with a file Obviously there is magic happening behind this simple interface