CSC209H Lecture 10. Dan Zingaro. March 18, 2015
|
|
- Margaret Sparks
- 6 years ago
- Views:
Transcription
1 CSC209H Lecture 10 Dan Zingaro March 18, 2015
2 Creating a Client To create a client that can connect to a server, call the following, in order: socket: create a communication endpoint This is the same as the first step when creating a server connect: connect to a server read, write: receive and send data with the server
3 connect The connect syscall connects to a listening server socket. int connect(int sockfd, struct sockaddr *addr, socklen_t add_len); sockfd: the FD returned from socket addr: address and port of the server add_len: set it to sizeof(addr) connect returns 0 on success, -1 on error
4 Simple Writing Client (writeclient.c) Use this to connect to readserver.c. #define PORT 7004 int main(int argc, char* argv[]) { int soc, num, err; char port[10], buf[128]; sprintf (port, "%d", PORT); struct addrinfo *info, hints; struct sockaddr_in peer; memset (&hints, 0, sizeof (struct addrinfo)); hints.ai_family = AF_INET; hints.ai_socktype = SOCK_STREAM; if ( argc!= 2) { fprintf(stderr, "Usage: %s hostname\n", argv[0]); exit(1); if ((err = getaddrinfo(argv[1], port, &hints, &info))) { fprintf (stderr, "%s\n", gai_strerror(err)); exit (1);
5 Simple Writing Client... (writeclient.c) peer = *(struct sockaddr_in *)(info->ai_addr); if ((soc = socket(af_inet, SOCK_STREAM, 0)) == -1) { perror ("socket"); exit (1); if (connect(soc, (struct sockaddr *)&peer, sizeof(peer)) == -1) { perror ("connect"); exit (1); while ((num = read(stdin_fileno, buf, sizeof(buf)))) write (soc, buf, num); close(soc); return(0);
6 Waiting on Multiple File Descriptors Assume that a parent p has two open file descriptors open for reading e.g. two sockets, two files, two reading ends of pipes, etc. The parent wants to read data from both... fd1 fd2 p
7 Waiting on Multiple File Descriptors... What if the parent doesn t know who will speak first? If it does a read on fd1, it will block until fd1 has data. But fd2 could already have some data waiting! For the same reason, the parent can t block on fd2: if it did, fd1 could have data but be ignored Extreme case: what if fd1 sends something once an hour, but fd2 sends something every minute?
8 Solution 1: fork Parent could fork one process for each FD it wants to monitor; each child monitors one FD Often requires the parent to set up communication mechanisms; e.g. A pipe used by children to communicate with the parent Shared memory accessible to both parent and children By default, parent and child have their own memory after fork; can t use that memory for communication Does not scale well because of the number of processes created
9 Solution 1: fork... In a forking server, the parent creates a child for each accepted client. while (1) {... fd = accept(...); ret = fork(); if (ret == 0) child(fd); else close(fd);
10 Solution 2: Nonblocking Reads You can change the behavior of read so that it returns -1 (and sets errno to EAGAIN) if no data is available read will never block in this mode However, this can lead to complex or inefficient code e.g. using a tight read-loop until data arrives
11 Solution 2: Nonblocking Reads... char buf[1024]; ssize_t bytesread;...open fd1 and fd2 if (fcntl(fd1, F_SETFL, O_NONBLOCK) == -1) { perror("fcntl"); exit(1); if (fcntl(fd2, F_SETFL, O_NONBLOCK) == -1) { perror("fcntl"); exit(1); for ( ; ; ) { bytesread = read(fd1, buf, sizeof(buf)); if ((bytesread == -1) && (errno!= EAGAIN)) return; /* real error */ else if (bytesread > 0) dosomething(buf, bytesread); bytesread = read(fd2, buf, sizeof(buf)); if ((bytesread == -1) && (errno!= EAGAIN)) return; /* real error*/ else if (bytesread > 0) dosomething(buf, bytesread);
12 Solution 3: select (Kerrisk ) select is a syscall that allows you to monitor several FDs without forking multiple children or tight-looping You tell select the FDS that are of interest, using three FD sets The FDs monitored for reading, the FDs monitored for writing, and the FDs whose exceptions you want to know select blocks until at least one of those FDs has action The FDs that remain in the FD sets are the ones on which you can read without blocking, on which you can write without blocking, or on which there is an exception
13 select... int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); select returns the number of FDs that are ready, or returns -1 on error nfds is one more than the highest-numbered FD of interest e.g. if you are interested in FDs 3, 9, and 50, pass 51 for nfds
14 select... int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); readfds: the set of FDs you are interested in reading writefds: the set of FDs you are interested in writing exceptfds: the set of FDs in whose exceptions you are interested Set any of these to NULL if you don t care about that condition The sets are modified by select to contain only the FDs with action of the requested type
15 select... int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); timeout: if you don t want select to timeout, use NULL Otherwise, pass a pointer to a struct timeval If the timeout occurs before any FDs are ready, select returns 0 As with the fd_sets, select can modify timeout struct timeval { long tv_sec; //seconds long tv_usec; //microseconds ;
16 FD Sets Sets of FDs are constructed in much the same way as signal sets i.e. you can empty a set, fill a set, or add or remove individual FDs void FD_ZERO(fd_set *fdset); //empty a set void FD_SET(int fd, fd_set *fdset); //add FD void FD_CLR(int fd, fd_set *fdset); //remove FD int FD_ISSET(int fd, const fd_set *fdset); // in, membership
17 Example: FD Sets Assume fd1 and fd2 are open FDs. Whichever fds are in the set after select finishes have data ready to read. fd_set set, retset; FD_ZERO(&set); FD_SET(fd1, &set); FD_SET(fd2, &set); if (fd1 > fd2) maxfd = fd1; else maxfd = fd2; retset = set; //copy set, because select changes it while (select(maxfd + 1, &retset, NULL, NULL, NULL) > 0) { if (FD_ISSET(fd1, &retset))... read from fd1 (won t block) if (FD_ISSET(fd2, &retset))... read from fd2 (won t block) retset = set;
18 Full Example (threepipes.c) This example has a parent waiting for data from three children Three pipes are used; each child sends data through a different pipe The parent doesn t know the order that it will receive data, so it uses select on the reading ends of the pipes The parent echoes what it receives, and quits when all three writing ends are closed by the children c1 c2 c3 write write parent write pipe pipe pipe read read read
19 Full Example... int main(void) { int pip[3] [2], i, j; for (i = 0; i < 3; i++) { if (pipe(pip[i]) == -1) { perror("pipe"); exit(1); switch(fork()) { case -1: perror("fork"); exit(1); case 0: for(j = 0; j < i; j++) { //Close unused close(pip[j] [0]); close(pip[j] [1]); child(pip[i]); parent(pip);
20 Full Example... int parent(int p[3][2]) { char buf[msg_size]; fd_set set, retset; int numactive = 3, i; for(i = 0; i < 3; i++) //Close write ends close(p[i][1]); FD_ZERO(&set); //Put read FDs in set for(i = 0; i < 3; i++) FD_SET(p[i][0], &set);
21 Full Example... retset = set; //save set while (numactive > 0 && select(p[2][0] + 1,&retset,NULL,NULL,NULL) > 0) { for(i = 0; i < 3; i++) { if(fd_isset(p[i][0], &retset)) { if (read(p[i][0], buf, MSG_SIZE) <= 0) { close(p[i][0]); FD_CLR(p[i][0], &set); numactive--; else { printf("message from child%d\n", i); printf("msg=%s\n",buf); retset = set; exit(0);
22 Full Example... int child(int p[2]) { int count; close(p[0]); //close read end for(count = 0; count < 2; count++) { write(p[1], msg1, MSG_SIZE); /* pause for a random amount of time */ sleep(getpid() % 4); write(p[1], msg2, MSG_SIZE); //last message exit(0);
23 select and Servers Recall that servers use accept to block until a client connects While you re stuck in the accept, you can t read and write with existing clients e.g. Last week, our readserver could handle only one client at a time Now, we can use select to allow a server to wait for new clients while at the same time servicing existing clients Put the listening FD and the FD for each client into the readfds parameter
24 select and Servers... After select returns, check to see who is in the readfds set If the listening FD is in there, a new client is connecting If an existing client s FD is in there, read that FD If read returns 0 or -1, the client has dropped If read returns a positive integer k, you have received k bytes from that client
25 Limitations of Select select causes fd_sets to be copied to/from the kernel on every call select does not scale well when monitoring too many FDs Kernel must loop through the first nfds FDs to determine which ones are in the sets and hence which FDs to monitor We must loop through the first nfds FDs when select returns select can monitor at most FD_SETSIZE FDs (1024 on Linux) Poorer performance when FDs to monitor are sparse
Εργαστήριο 9 I/O Multiplexing
Εργαστήριο 9 I/O Multiplexing Στοεργαστήριοθαμελετηθούν: Server High Level View I/O Multiplexing Solutions for Concurrency nonblocking I/O Use alarm and signal handler to interrupt slow system calls. Use
More informationInter-process Communication using Pipes
Inter-process Communication using Pipes Dept. of Computer Science & Engineering 1 Pipes A pipe is a one-way communication channel that couples one process to another. Used only between processes that have
More informationCSC209H Lecture 9. Dan Zingaro. March 11, 2015
CSC209H Lecture 9 Dan Zingaro March 11, 2015 Socket Programming (Kerrisk Ch 56, 57, 59) Pipes and signals are only useful for processes communicating on the same machine Sockets are a general interprocess
More informationNETWORK AND SYSTEM PROGRAMMING. I/O Multiplexing: select and poll function
NETWORK AND SYSTEM PROGRAMMING LAB 15 I/O Multiplexing: select and poll function 15.1 objectives What is a Concurrent server Use of Select System call Use of Poll System call 15.2 What is concurrent server?
More informationCSC209H Lecture 7. Dan Zingaro. February 25, 2015
CSC209H Lecture 7 Dan Zingaro February 25, 2015 Inter-process Communication (IPC) Remember that after a fork, the two processes are independent We re going to use pipes to let the processes communicate
More informationCOMP/ELEC 429/556 Introduction to Computer Networks
COMP/ELEC 429/556 Introduction to Computer Networks Creating a Network Application Some slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang 1 How to Programmatically
More informationI/O Models. Kartik Gopalan
I/O Models Kartik Gopalan Types of Concurrency True Concurrency (multiple processes or threads) Multi-processor machines Child processes/threads execute in parallel. Multi-process (forking) servers If
More informationCISC2200 Threads Spring 2015
CISC2200 Threads Spring 2015 Process We learn the concept of process A program in execution A process owns some resources A process executes a program => execution state, PC, We learn that bash creates
More informationCSC209H Lecture 11. Dan Zingaro. March 25, 2015
CSC209H Lecture 11 Dan Zingaro March 25, 2015 Level- and Edge-Triggering (Kerrisk 63.1.1) When is an FD ready? Two answers: Level-triggered: when an operation will not block (e.g. read will not block),
More informationGroup-A Assignment No. 6
Group-A Assignment No. 6 R N Oral Total Dated Sign (2) (5) (3) (10) Title : File Transfer using TCP Socket Problem Definition: Use Python for Socket Programming to connect two or more PCs to share a text
More informationNetwork Programming in C: The Berkeley Sockets API. Networked Systems 3 Laboratory Sessions
Network Programming in C: The Berkeley Sockets API Networked Systems 3 Laboratory Sessions The Berkeley Sockets API Widely used low-level C networking API First introduced in 4.3BSD Unix Now available
More informationCONCURRENCY MODEL. UNIX Programming 2014 Fall by Euiseong Seo
CONCURRENCY MODEL UNIX Programming 2014 Fall by Euiseong Seo Echo Server Revisited int main (int argc, char *argv[]) {... listenfd = socket(af_inet, SOCK_STREAM, 0); bzero((char *)&saddr, sizeof(saddr));
More informationCS118 Discussion Week 2. Taqi
CS118 Discussion Week 2 Taqi Outline Any Questions for Course Project 1? Socket Programming: Non-blocking mode Lecture Review: Application Layer Much of the other related stuff we will only discuss during
More information9/13/2007. Motivations for Sockets What s in a Socket? Working g with Sockets Concurrent Network Applications Software Engineering for Project 1
Daniel Spangenberger 15 441 Computer Networks, Fall 2007 Goal of Networking: Communication Share data Pass Messages Say I want to talk to a friend in Singapore How can I do this? What applications and
More informationProject 3. Reliable Data Transfer over UDP. NTU CSIE Computer Networks 2011 Spring
Project 3 Reliable Data Transfer over UDP NTU CSIE Computer Networks 2011 Spring Project Goal In Project 3, students are asked to understand and implement reliable data transfer mechanism over UDP. UDP
More informationCSE 333 Section 8 - Client-Side Networking
CSE 333 Section 8 - Client-Side Networking Welcome back to section! We re glad that you re here :) Networking Quick Review What are the following protocols used for? (bonus: what layer of the networking
More informationUNIVERSITY OF TORONTO SCARBOROUGH Computer and Mathematical Sciences. APRIL 2016 EXAMINATIONS CSCB09H3S Software Tools & Systems Programming
UNIVERSITY OF TORONTO SCARBOROUGH Computer and Mathematical Sciences APRIL 2016 EXAMINATIONS CSCB09H3S Software Tools & Systems Programming Instructor: Bianca Schroeder and Naureen Nizam Duration: 3 hours
More informationCONCURRENT PROGRAMMING. Lecture 5
CONCURRENT PROGRAMMING Lecture 5 Last lecture TCP I/O RIO: buffered I/O. Unix IO Question: difference between send() and write()? MSG_DONTWAIT, MSG_NOSIGNAL 2 Concurrent Programming is Hard! The human
More informationAssignment 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 informationCSci 4061 Introduction to Operating Systems. IPC: Basics, Pipes
CSci 4061 Introduction to Operating Systems IPC: Basics, Pipes Communication IPC in Unix Pipes: most basic form of IPC in Unix process-process ps u jon grep tcsh // what happens? Pipe has a read-end (receive)
More informationCSCE 313 Introduction to Computer Systems. Instructor: Dezhen Song
CSCE 313 Introduction to Computer Systems Instructor: Dezhen Song UNIX I/O Files and File Representation Basic operations: Reading / Writing Caching: File Open / Close Multiplexing: Select / Poll File
More informationCSci 4061 Introduction to Operating Systems. IPC: Basics, Pipes
CSci 4061 Introduction to Operating Systems IPC: Basics, Pipes Communication IPC in Unix Pipes: most basic form of IPC in Unix process-process ps u jon grep tcsh // what happens? Pipe has a read-end (receive)
More informationProcesses often need to communicate. CSCB09: Software Tools and Systems Programming. Solution: Pipes. Recall: I/O mechanisms in C
2017-03-06 Processes often need to communicate CSCB09: Software Tools and Systems Programming E.g. consider a shell pipeline: ps wc l ps needs to send its output to wc E.g. the different worker processes
More informationcall connect call read call connect ret connect call fgets Client 2 blocks waiting to complete its connection request until after lunch!
15-213 The course that gives CMU its Zip! Concurrent Servers December 4, 2001 Topics Limitations of iterative servers Process-based concurrent servers Threads-based concurrent servers Event-based concurrent
More informationCSE 43: Computer Networks Structure, Threading, and Blocking. Kevin Webb Swarthmore College September 14, 2017
CSE 43: Computer Networks Structure, Threading, and Blocking Kevin Webb Swarthmore College September 14, 2017 1 Agenda Under-the-hood look at system calls Data buffering and blocking Processes, threads,
More informationPorts 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 informationCSci 4061 Introduction to Operating Systems. IPC: Basics, Pipes
CSci 4061 Introduction to Operating Systems IPC: Basics, Pipes Today Directory wrap-up Communication/IPC Test in one week Communication Abstraction: conduit for data exchange between two or more processes
More informationConcurrent Programming. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
Concurrent Programming Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Echo Server Revisited int main (int argc, char *argv[]) {... listenfd = socket(af_inet,
More informationFile Descriptors and Piping
File Descriptors and Piping CSC209: Software Tools and Systems Programming Furkan Alaca & Paul Vrbik University of Toronto Mississauga https://mcs.utm.utoronto.ca/~209/ Week 8 Today s topics File Descriptors
More informationUNIX System Programming. Overview. 1. A UNIX System. 2. Processes (review) 2.1. Context. Pipes/FIFOs
UNIX System Programming Pipes/FIFOs Overview 1. A UNIX System (review) 2. Processes (review) Objectives Look at UNIX support for interprocess communication (IPC) on a single machine Review processes pipes,
More informationCS 43: Computer Networks. 05: Socket Programming September 12-14, 2018
CS 43: Computer Networks 05: Socket Programming September 12-14, 2018 Reading Quiz Lecture 5/6 - Slide 2 Socket Programming Adapted from: Donahoo, Michael J., and Kenneth L. Calvert. TCP/IP sockets in
More informationAny of the descriptors in the set {1, 4} have an exception condition pending
Page 1 of 6 6.3 select Function This function allows the process to instruct the kernel to wait for any one of multiple events to occur and to wake up the process only when one or more of these events
More informationA Socket Example. Haris Andrianakis & Angelos Stavrou George Mason University
A Socket Example & George Mason University Everything is a file descriptor Most socket system calls operate on file descriptors Server - Quick view socket() bind() listen() accept() send(), recv() close()
More informationG Honors Operating Systems
G22.3250 Honors Operating Systems David Mazières 715 Broadway, #708 dm@cs.nyu.edu Administrivia All assignments are on the web page http://www.scs.cs.nyu.edu/g22.3250/ Part of each class will be spent
More informationCS118 Discussion 1A, Week 3. Zengwen Yuan Dodd Hall 78, Friday 10:00 11:50 a.m.
CS118 Discussion 1A, Week 3 Zengwen Yuan Dodd Hall 78, Friday 10:00 11:50 a.m. 1 Outline Application Layer Protocol: DNS, CDN, P2P Transport Layer Protocol: UDP, principles of reliable transport protocol
More informationCSE 124 Discussion Section Sockets Programming 10/10/17
CSE 124 Discussion Section Sockets Programming 10/10/17 Topics What s a socket? Creating a socket Connecting a socket Sending data Receiving data Resolving URLs to IPs Advanced socket options Live code
More informationCS 43: Computer Networks. 07: Concurrency and Non-blocking I/O Sep 17, 2018
CS 43: Computer Networks 07: Concurrency and Non-blocking I/O Sep 17, 2018 Reading Quiz Lecture 5 - Slide 2 Today Under-the-hood look at system calls Data buffering and blocking Inter-process communication
More informationThe Berkeley Sockets API. Networked Systems Architecture 3 Lecture 4
The Berkeley Sockets API Networked Systems Architecture 3 Lecture 4 The Berkeley Sockets API Widely used low-level C networking API First introduced in 4.3BSD Unix Now available on most platforms: Linux,
More informationGood Luck! Marking Guide. APRIL 2014 Final Exam CSC 209H5S
APRIL 2014 Final Exam CSC 209H5S Last Name: Student #: First Name: Signature: UNIVERSITY OF TORONTO MISSISSAUGA APRIL 2014 FINAL EXAMINATION CSC209H5S System Programming Daniel Zingaro Duration - 3 hours
More informationUNIX 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 informationNetwork programming(ii) Lenuta Alboaie
Network programming(ii) Lenuta Alboaie adria@info.uaic.ro 1 Content let s remember: iterative TCP client/server UDP client/server model I/O primitives Advanced programming aspects in Internet socket API
More informationComputer Network Programming
Practical Programming Computer Network Programming Marwan Burelle & David Bouchet david.bouchet.epita@gmail.com 1 Quick Overview 1.IP and Protocol Stack 2.TCP Concepts 3.Client / Server Concepts 4.Socket
More informationNetwork Games Part II. Architecture of Network Game
Network Games Part II Doron Nussbaum Network Games Part II COMP 5900 1 Architecture of Network Game Client Server Peer to Peer Player 1 Player 2 Player 1 Player 2 Server Player 5 Player 3 Player 5 Player
More informationConcurrent Servers Dec 2, 2009"
Concurrent Servers Dec 2, 2009" Administrivia" 2! Iterative Servers" client 1! server! client 2! call connect ret connect call read ret read close call accept" ret accept" write close call accept" ret
More informationNetwork Programming in C. Networked Systems 3 Laboratory Sessions and Problem Sets
Network Programming in C Networked Systems 3 Laboratory Sessions and Problem Sets Lab Timetable, Aims, and Objectives Teaching Week Activity 14 Introduction 15 Warm-up exercise 16 17 Web client 18 19 20
More informationECE 650 Systems Programming & Engineering. Spring 2018
ECE 650 Systems Programming & Engineering Spring 2018 Inter-process Communication (IPC) Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) Recall Process vs. Thread A process is
More informationCSE 333 SECTION 7. Client-Side Network Programming
CSE 333 SECTION 7 Client-Side Network Programming Overview Domain Name Service (DNS) Client side network programming steps and calls dig and ncat tools Network programming for the client side Recall the
More informationThree Basic Mechanisms for Creating Concurrent Flows. Systemprogrammering 2009 Föreläsning 10 Concurrent Servers. Process-Based Concurrent Server
Systemprogrammering 2009 Föreläsning 10 Concurrent Servers Topics! Limitations of iterative servers! Process-based concurrent servers! Event-based concurrent servers! Threads-based concurrent servers Three
More informationRedesde Computadores(RCOMP)
Redesde Computadores(RCOMP) Theoretical-Practical (TP) Lesson 07 2016/2017 Berkeley sockets API, C and Java. Basic functions/methods for TCP applications. TCP client and server. Asynchronous reception.
More informationInter-Process Communication. Disclaimer: some slides are adopted from the book authors slides with permission 1
Inter-Process Communication Disclaimer: some slides are adopted from the book authors slides with permission 1 Today Inter-Process Communication (IPC) What is it? What IPC mechanisms are available? 2 Inter-Process
More informationInternet protocol stack. Internetworking II: Network programming. April 20, UDP vs TCP. Berkeley Sockets Interface.
15-213 Internetworking II: Network programming Berkeley sockets interface Internet protocol stack April 20, 2000 Topics client/server model Berkeley sockets TCP client and server examples UDP client and
More informationRedes de Computadores (RCOMP)
Redes de Computadores (RCOMP) Theoretical-Practical (TP) Lesson 07 2017/2018 Berkeley sockets API, C and Java. Basic functions/methods for TCP applications. TCP client and server. Asynchronous reception.
More informationInternetworking II: Network programming. April 20, 2000
15-213 Internetworking II: Network programming Topics April 20, 2000 client/server model Berkeley sockets TCP client and server examples UDP client and server examples I/O multiplexing with select() Internet
More informationCSE 333 SECTION 7. C++ Virtual Functions and Client-Side Network Programming
CSE 333 SECTION 7 C++ Virtual Functions and Client-Side Network Programming Overview Virtual functions summary and worksheet Domain Name Service (DNS) Client side network programming steps and calls dig
More informationSystem Programming. Sockets: examples
Content : by Dr. B. Boufama School of Computer Science University of Windsor Instructor: Dr. A. Habed adlane@cs.uwindsor.ca http://cs.uwindsor.ca/ adlane/60-256 Content Content 1 Socket based client/server
More informationCSC209H Lecture 6. Dan Zingaro. February 11, 2015
CSC209H Lecture 6 Dan Zingaro February 11, 2015 Zombie Children (Kerrisk 26.2) As with every other process, a child process terminates with an exit status This exit status is often of interest to the parent
More informationSocket Programming. What is a socket? Using sockets. Types (Protocols) Associated functions Styles
Socket Programming What is a socket? Using sockets Types (Protocols) Associated functions Styles We will look at using sockets in C Note: Java and C# sockets are conceptually quite similar 1 What is a
More informationTypes (Protocols) Associated functions Styles We will look at using sockets in C Java sockets are conceptually quite similar
Socket Programming What is a socket? Using sockets Types (Protocols) Associated functions Styles We will look at using sockets in C Java sockets are conceptually quite similar - Advanced Data Communications:
More informationl27 handout.txt buggy server.c Printed by Michael Walfish Apr 29, 10 13:41 Page 1/1 Apr 29, 10 11:51 Page 1/1
Apr 29, 10 13:41 Page 1/1 1 Handout for CS 372H 2 Class 27 3 29 April 2010 4 5 1. Introduction to buffer overflow attacks 6 7 There are many ways to attack computers. Today we study the 8 "classic" method.
More informationCSE 333 SECTION 8. Sockets, Network Programming
CSE 333 SECTION 8 Sockets, Network Programming Overview Domain Name Service (DNS) Client side network programming steps and calls Server side network programming steps and calls dig and ncat tools Network
More informationECE 435 Network Engineering Lecture 2
ECE 435 Network Engineering Lecture 2 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 31 August 2017 Announcements Homework 1 will be posted. Will be on website, will announce
More information1 /* client.c - adapted from code for example client program that uses TCP */ 2 /*Modified by Vincent Chu, Winter
1 /* client.c - adapted from code for example client program that uses TCP */ 2 /*Modified by Vincent Chu, Winter 2004. 3 http://www.sfu.ca/~vwchu 4 chuvincent (at) gmail (dot) com 5 */ 6 7 #define closesocket
More informationProject 1: A Web Server Called Liso
Project 1: A Web Server Called Liso 15-441/641 Computer Networks Kenneth Yang Viswesh Narayanan "What happens when you type google.com into your browser's address box and press enter?"... Establish a TCP
More informationSockets. Dong-kun Shin Embedded Software Laboratory Sungkyunkwan University Embedded Software Lab.
1 Sockets Dong-kun Shin Embedded Software Laboratory Sungkyunkwan University http://nyx.skku.ac.kr Internet Connections (1) 2 Connection Clients and servers communicate by sending streams of bytes over
More informationPLEASE HAND IN UNIVERSITY OF TORONTO Faculty of Arts and Science
PLEASE HAND IN UNIVERSITY OF TORONTO Faculty of Arts and Science AUGUST 2012 EXAMINATIONS CSC 209H1Y Instructor: Daniel Zingaro Duration three hours PLEASE HAND IN Examination Aids: one two-sided 8.5x11
More informationCPSC 410/611: File Management. What is a File?
CPSC 410/611: What is a file? Elements of file management File organization Directories File allocation Reading: Silberschatz, Chapter 10, 11 What is a File? A file is a collection of data elements, grouped
More informationThe BSD UNIX Socket Interface (CS 640 Lecture) Assignment 1. Interprocess Communication (IPC) Work Individually (no groups)
The BSD UNIX Socket Interface (CS 640 Lecture) Assignment 1 Work Individually (no groups) Due Date: in class, Monday, September 19 Robert T Olsen olsen@cswiscedu 7390CS Office Hours: 3-5T, 11-12F - exception
More informationCSE 333 SECTION 6. Networking and sockets
CSE 333 SECTION 6 Networking and sockets Overview Network Sockets IP addresses and IP address structures in C/C++ DNS Resolving DNS names Demos Section exercise Sockets Network sockets are network interfaces
More informationCS 33. More Network Programming. CS33 Intro to Computer Systems XXXI 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.
CS 33 More Network Programming CS33 Intro to Computer Systems XXXI 1 Copyright 2017 Thomas W. Doeppner. All rights reserved. Stream Relay Source Sink Relay Sink Source CS33 Intro to Computer Systems XXXI
More informationOutline. Distributed Computer Systems. Socket Basics An end-point for a IP network connection. Ports. Sockets and the OS. Transport Layer.
Outline Distributed Computer Systems Socket basics Socket details (TCP and UDP) Socket options Final notes Sockets Socket Basics An end-point for a IP network connection what the application layer plugs
More informationClient-server model The course that gives CMU its Zip! Network programming Nov 27, Using ports to identify services.
15-213 The course that gives CMU its Zip! Network programming Nov 27, 2001 Topics Client- model Sockets interface Echo and Client- model Every network application is based on the - model: Application is
More informationNETWORK PROGRAMMING. Instructor: Junaid Tariq, Lecturer, Department of Computer Science
NETWORK PROGRAMMING CSC- 341 25 Instructor: Junaid Tariq, Lecturer, Department of Computer Science 26 9 Lecture Sockets as means for inter-process communication (IPC) application layer Client Process Socket
More informationSOCKET PROGRAMMING. What is a socket? Using sockets Types (Protocols) Associated functions Styles
LABORATORY SOCKET PROGRAMMING What is a socket? Using sockets Types (Protocols) Associated functions Styles 2 WHAT IS A SOCKET? An interface between application and network The application creates a socket
More informationAdapting Data for Web Applications That Use IPv6 Internet Protocol
American Association for Science and Technology AASCIT Communications Volume 1, Issue 3 October 20, 2014 online Adapting Data for Web Applications That Use IPv6 Internet Protocol Dănuţ-Octavian Simion
More informationServer-side Programming
Server-side Programming CSE 333 Spring 2018 Instructor: Justin Hsia Teaching Assistants: Danny Allen Dennis Shao Eddie Huang Kevin Bi Jack Xu Matthew Neldam Michael Poulain Renshu Gu Robby Marver Waylon
More informationCommunication. Sockets (Haviland Ch. 10)
Communication Sockets (Haviland Ch. 10) 1 Simple Web Request 5LFKDUG V+RPH3DJH &RXUVHV 5HVHDUFK 2 How do we find the server? Every computer on the Internet has an Internet address. Called an IP address
More informationCMPSC 311- Introduction to Systems Programming Module: Network Programming
CMPSC 311- Introduction to Systems Programming Module: Network Programming Professor Patrick McDaniel Fall 2013 What is a? A is a collection of computing devices that share a transmission media Traditional
More informationMaria Hybinette, UGA. ! One easy way to communicate is to use files. ! File descriptors. 3 Maria Hybinette, UGA. ! Simple example: who sort
Two Communicating Processes Hello Gunnar CSCI 6730/ 4730 Operating Systems Process Chat Maria A Hi Nice to Hear from you Process Chat Gunnar B Dup & Concept that we want to implement 2 On the path to communication
More informationECE 435 Network Engineering Lecture 2
ECE 435 Network Engineering Lecture 2 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 6 September 2018 Announcements Homework 1 will be posted. Will be on website, will announce
More informationToday: VM wrap-up Select (if time) Course wrap-up Final Evaluations
Today: VM wrap-up Select (if time) Course wrap-up Final Evaluations Program structure int A[1024][1024] ; Each row is stored in one page Ignore code page in this example One frame allocated Program 1 for
More informationContents. IPC (Inter-Process Communication) Representation of open files in kernel I/O redirection Anonymous Pipe Named Pipe (FIFO)
Pipes and FIFOs Prof. Jin-Soo Kim( jinsookim@skku.edu) TA JinHong Kim( jinhong.kim@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Contents IPC (Inter-Process Communication)
More informationISA 563: Fundamentals of Systems Programming
ISA 563: Fundamentals of Systems Programming Advanced IO April 9, 2012 Non-blocking IO Data processing can be much faster than data access Waiting for IO to finish can be time consuming, and may not even
More informationPLEASE HAND IN UNIVERSITY OF TORONTO Faculty of Arts and Science
PLEASE HAND IN UNIVERSITY OF TORONTO Faculty of Arts and Science AUGUST 2011 EXAMINATIONS CSC 209H1Y Instructor: Daniel Zingaro Duration three hours PLEASE HAND IN Examination Aids: one two-sided 8.5x11
More informationClient-side Networking
Client-side Networking CSE 333 Autumn 2018 Instructor: Hal Perkins Teaching Assistants: Tarkan Al-Kazily Renshu Gu Trais McGaha Harshita Neti Thai Pham Forrest Timour Soumya Vasisht Yifan Xu Administriia
More informationI/O Multiplexing. Dec 2009
Windows Socket I/O Multiplexing http://icourse.cuc.edu.cn/networkprogramming/ linwei@cuc.edu.cn Dec 2009 Note You should not assume that an example in this presentation is complete. Items may have been
More informationCSE 333 Lecture non-blocking I/O and select
CSE 333 Lecture 19 -- non-blocking I/O and select Steve Gribble Department of Computer Science & Engineering University of Washington Non-blocking I/O Warning: an unfamiliar and slightly non-intuitive
More informationCOMP 2355 Introduction to Systems Programming
COMP 2355 Introduction to Systems Programming Christian Grothoff christian@grothoff.org http://grothoff.org/christian/ 1 Today sprintf scanf file IO fork 2 System Programming 101 Check return values of
More informationSystem Programming. Pipes I
Content : by Dr. B. Boufama School of Computer Science University of Windsor Instructor: Dr. A. Habed adlane@cs.uwindsor.ca http://cs.uwindsor.ca/ adlane/60-256 Content Content 1 Review Signals and files
More information프로세스간통신 (Interprocess communication) i 숙명여대창병모
프로세스간통신 (Interprocess communication) i 숙명여대창병모 Contents 1. Pipes 2. FIFOs 숙대창병모 2 파이프 (Pipe) IPC using Pipes IPC using regular files unrelated processes can share fixed size life-time lack of synchronization
More informationCSC209H Lecture 3. Dan Zingaro. January 21, 2015
CSC209H Lecture 3 Dan Zingaro January 21, 2015 Streams (King 22.1) Stream: source of input or destination for output We access a stream through a file pointer (FILE *) Three streams are available without
More informationCOSC Operating Systems Design, Fall Lecture Note: Unnamed Pipe and Shared Memory. Unnamed Pipes
COSC4740-01 Operating Systems Design, Fall 2001 Lecture Note: Unnamed Pipe and Shared Memory Unnamed Pipes Pipes are a form of Inter-Process Communication (IPC) implemented on Unix and Linux variants.
More informationsottotitolo Socket Programming Milano, XX mese 20XX A.A. 2016/17 Federico Reghenzani
Titolo presentazione Piattaforme Software per la Rete sottotitolo Socket Programming Milano, XX mese 20XX A.A. 2016/17 Outline 1) Introduction to Sockets 2) UDP communication 3) TCP communication 4) RAW
More informationTCP: Three-way handshake
Sockets in C 1 Sockets in C The slides by themselves will not be sufficient to learn how to write socket code. If you did not attend class, then you will want to review the relevant chapters in Kerrisk
More informationUNIX System Programming Lecture 19: IP Sockets
UNIX System Programming Lecture 19: Outline Reference BLP: Chapter 15 man pages: socket, bind, connect, listen, accept, ip(7), ipv6(7), getaddrinfo, getnameinfo 1 Review of UNIX Sockets On the server,
More informationGlobal Employee Location Server
S4516 HELP Session 1 Global Employee Location Server Jeff Zhou jeffz@cs.wpi.edu 3/19/2011 Modified based on S4514 B05 slides Objective: Description To implement a simple concurrent server that has four
More informationl27 handout.txt buggy server.c Printed by Michael Walfish Apr 28, 11 15:24 Page 1/1 Apr 27, 11 1:53 Page 1/2
Apr 28, 11 15:24 Page 1/1 1 Handout for CS 372H 2 Class 27 3 28 April 2011 4 5 1. Introduction to buffer overflow attacks 6 7 There are many ways to attack computers. Today we study the 8 "classic" method.
More informationCMPSC 311- Introduction to Systems Programming Module: Network Programming
CMPSC 311- Introduction to Systems Programming Module: Network Programming Professor Patrick McDaniel Fall 2016 What is a network? A network is a collection of computing devices that share a transmission
More informationUNIX Sockets. COS 461 Precept 1
UNIX Sockets COS 461 Precept 1 Socket and Process Communica;on application layer User Process Socket transport layer (TCP/UDP) OS network stack network layer (IP) link layer (e.g. ethernet) Internet Internet
More informationIterative Servers The course that gives CMU its Zip! Iterative servers process one request at a time. Concurrent Servers
15-213 The course that gives CMU its Zip! Concurrent Servers Dec 3, 2002 Topics! Limitations of iterative servers! Process-based concurrent servers! Event-based concurrent servers! Threads-based concurrent
More informationNetworks class. CS144 Introduction to Computer Networking. Administrivia. Administrivia 2. Grading. Labs. Goal: Teach the concepts underlying networks
CS144 Introduction to Computer Networking Instructors: Philip Levis and David Mazières CAs: Roger Liao and Samir Selman Section Leaders: Saatvik Agarwal, Juan Batiz-Benet, and Tom Wiltzius cs144-staff@scs.stanford.edu
More information