Principles, Models, and Applications for Distributed Systems M
|
|
- Deborah Scott
- 6 years ago
- Views:
Transcription
1 Università degli Studi di Bologna Facoltà di Ingegneria Principles, Models, and Applications for Distributed Systems M Exercitation 3 Connected Java Sockets Jacopo De Benedetto Distributed architecture for the file transfer: Sequential Server Std Input file name client put file network put file server file - Connection usage for coordination and communication: send file name and file content Std Output 1
2 Distributed architecture for the file transfer: Concurrent Server file name 1 client serverthread1 serverthread2 file name 2 client put file2 Network rete server file name 3 client serverthread3 Implementation details Develop a C/S application to transfer a binary file from client to server (put). The Client asks the user the file name of the file to transfer; then, it connects to the server (using stream sockets: java.net.socket), builds an output stream over the socket connection, and sends the file name and the file content. Finally, it waits and prints the server reply (success/failure) and prepares to receive other user requests until the end of the program. The Server listens for connection requests (using java.net. ServerSocket class), accepts incoming connection request (java.net.socket), and builds an input stream on the connected socket, that it uses to read the file name and the file content, by saving the file in its local file system (current working directory). Then, it sends a reply and closes the connection. There are two possible responses: file overwriting (if the file already exists) and file creation (if it has been created) and each of them can be either successful or not. 2
3 Filter A filter is an application thate consumes the input stream and writes on the output stream Input Filter Output Filters can be combined to build a pipeline. For example a filter could read until the End Of File (EOF) an input stream and copy read input data to its output stream (see the following slides). Many filter types: character/line/byte/ oriented. In the following we use a simple line-oriented filter: SimpleFilter then, we use a byte-oriented filter: byte_file_transfer Line-Oriented Filter This filter reads lines from standard input, and writes to the standard output only those lines that contain the a character : public class SimpleFilter { public static void main(string[] args) { String line; BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter output = new BufferedWriter(new OutputStreamWriter(System.out)); System.err.println("\nSimpleFilter message:"); try { while ((line = input.readline())!= null) if (line.lastindexof('a') > 0) output.write(line + "\n"); output.flush(); // flush buffer catch (IOException e) { System.out.println("Error: "); e.printstacktrace(); 3
4 Filters and Streams Input/output streams as filters Examples of input/output streams wrapping a socket: DataInputStream insock = new DataInputStream(socket.getInputStream()); DataOutputStream outsock = new DataOutputStream(socket.getOutputStream()); Examples of input/output streams wrapping a binary file: DataInputStream insock = new DataInputStream(new FileInputStream(filename)); DataOutputStream outsock = new DataOutputStream(new FileOutputStream(filename)); FileUtility: Byte-oriented filter for file transfer // Static method: byte_file_transfer static protected void byte_file_transfer (DataInputStream src, DataOutputStream dest) throws IOException { // loop: read from src and write to dest int buffer = 0; try { // break from loop if we read // a negative value -> EOF while ( (buffer = src.read()) >= 0) dest.write(buffer); dest.flush(); catch (EOFException e) { System.out.println("Error: "); e.printstacktrace(); 4
5 Solution sketch: Client (1) 1. Create a socket with implicit bind (and set options, if needed): socket = new Socket(addr, port); socket.setxxx( ); 2. User interaction: BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Insert a file name: "); String filename = null; while( filename=stdin.readline() )!=null) 3. Wrap socket output stream: outsock = new DataOutputStream(socket.getOutputStream()); Solution sketch: Client (2) 4. Wrap binary file in a input stream: infile = new DataInputStream(new FileInputStream(filename)); 5. Send data to server: outsock.writeutf(filename); FileUtility.byte_file_transfer(inFile, outsock); 6. Graceful socket close and receive response: socket.shutdownoutput();... response = insock.readutf(); socket.shutdowninput(); 5
6 Solution sketch: Server (1) 1. Create a socket with explicit bind (and set options, if needed): serversocket = new ServerSocket(port); serversocket.setreuseaddress(true); 2. Wait for a connection request and accept it: clientsocket = serversocket.accept(); 3. Wrap socket input stream: insock = new DataInputStream(clientSocket.getInputStream()); 4. Wrap binary file in an output stream: filename=insock.readutf(); outfile = new DataOutputStream( new FileOutputStream(filename)); Solution sketch: Server (2) 5. Receive data from client and write to output file: FileUtility.byte_file_transfer(inSock,outFile); 6. Close file and socket, send response: outfile.close(); socket.shutdowninput();... outsock.writeutf(response); socket.shutdownoutput(); Remember to close always all sockets and files no longer in use! 6
7 PutFileClient for binary files 1/3 public class PutFileClient { public static void main(string[] args) throws IOException { InetAddress addr = null; int port = -1; try{ // check invocation arguments if(args.length == 2){ addr = InetAddress.getByName(args[0]); port = Integer.parseInt(args[1]); else{ System.out.println("Usage:..."); System.exit(1); //try catch(exception e){... // objects for network communication and file access Socket socket = null; FileInputStream infile = null; String filename = null; DataInputStream insock = null; DataOutputStream outsock = null; BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); System.out.print("\n^D(Unix)/^Z(Win)+enter. File name?"); PutFileClient for binary files2/3 try{ while ((filename=stdin.readline())!=null){ if(new File(filename).exists()){ try{ // socket creation socket = new Socket(addr, port); socket.setsotimeout(30000); insock = new DataInputStream(socket.getInputStream()); outsock = new DataOutputStream(socket.getOutputStream()); catch(exception e){... continue; else{system.out.println("file " + filename + " does not exist"); System.out.print("\n^D(Unix)/^Z(Win)..."); continue; // Send file try{ infile = new FileInputStream(filename); catch(filenotfoundexception e){ 7
8 PutFileClient for binary files 3/3 try{ outsock.writeutf(filename); FileUtility.byte_file_transfer( new DataInputStream(inFile), outsock); infile.close(); // close file socket.shutdownoutput(); // close socket output stream, i.e., send EOF catch (SocketTimeoutException te) {... continue; catch(exception e){... continue; String response; // read reply try{ response = insock.readutf(); socket.shutdowninput(); // close socket input stream catch (SocketTimeoutException te) {... continue; catch(exception e){... continue; System.out.print("\n^D(Unix)/^Z(Win)..."); // new request // while // try catch(exception e){... System.exit(3); // main // class PutFileServerSeq for binary files1/3 public class PutFileServerSeq { public static final int PORT = 54321; // default port public static void main(string[] args) throws IOException { int port = -1; try // check arguments { if (args.length == 1) { port = Integer.parseInt(args[0]); else if (args.length == 0) { port = PORT; else { // Msg errore... //try catch (Exception e) {... ServerSocket serversocket = null; // build socket and in/out streams try { serversocket = new ServerSocket(port); serversocket.setreuseaddress(true); catch (Exception e) {... try { while (true) // server endless loop { Socket clientsocket = null; DataInputStream insock = null; DataOutputStream outsock = null; 8
9 PutFileServerSeq for binary files 2/3 try { clientsocket = serversocket.accept(); clientsocket.setsotimeout(30000); catch (Exception e) {... continue; String filename; try // build I/O streams { insock =new DataInputStream(clientSocket.getInputStream()); outsock =new DataOutputStream(clientSocket.getOutputStream()); filename = insock.readutf(); catch (SocketTimeoutException te) {... continue; catch (IOException e) {... continue; FileOutputStream outfile = null; String response; // receive file if (filename == null) { clientsocket.close(); continue; else { File curfile = new File(filename); if (curfile.exists()) { try { response = "File overwritten"; curfile.delete(); // delete the file catch (Exception e) {... continue; PutFileServerSeq for binary files 3/3 else response = "New file created"; outfile = new FileOutputStream(filename); try // receive file { FileUtility.byte_file_trasfer( insock, new DataOutputStream(outFile)); // Note: the function above consumes the EOF outfile.close(); // close file clientsocket.shutdowninput(); outsock.writeutf(response+", file saved on server"); clientsocket.shutdownoutput(); catch (SocketTimeoutException te) {... continue; catch (Exception e) {...continue; catch (Exception e) {... System.exit(3); 9
10 PutFileServerCon for binary files 1/4 class PutFileServerThread extends Thread { private Socket clientsocket = null; public PutFileServerThread(Socket clientsocket) { this.clientsocket = clientsocket; public void run() // Child process that manages a connection { DataInputStream insock; DataOutputStream outsock; try { String filename; try // build stream { insock = new DataInputStream(clientSocket.getInputStream()); outsock = new DataOutputStream(clientSocket.getOutputStream()); filename = insock.readutf(); catch (SocketTimeoutException te) {... catch (IOException ioe) {... catch (Exception e) {... FileOutputStream outfile = null; String response; // receive file: error if (filename == null) {clientsocket.close(); return; PutFileServerCon for binary files 2/4 else { // checks if file exsists File curfile = new File(filename); if (curfile.exists()) { try // delete old file { response = "File overwritten"; curfile.delete(); catch (Exception e) {... return; else response = "New file created"; outfile = new FileOutputStream(filename); try { FileUtility.byte_file_transfer (insock, new DataOutputStream(outFile)); outfile.close(); // close file and socket // IMPORTANT: socket closed by child process clientsocket.shutdowninput(); outsock.writeutf(response + ", file saved"); clientsocket.shutdownoutput(); catch (Exception e) {... catch (Exception e) {... System.exit(3); // run // PutFileServerThread 10
11 PutFileServerCon for binary files 3/4 public class PutFileServerCon { public static final int PORT = 1050; public static void main (String[] args) throws IOException { int port = -1; try // check arguments { if (args.length == 1) {port = Integer.parseInt(args[0]); else if (args.length == 0) {port = PORT; else { System.out.println("Usage:..."); System.exit(1); //try catch (Exception e) {... System.exit(1); ServerSocket serversocket = null; Socket clientsocket = null; try { serversocket = new ServerSocket(port); serversocket.setreuseaddress(true); catch (Exception e) {... System.exit(1); try { while (true) { try { clientsocket = serversocket.accept(); clientsocket.setsotimeout(30000); catch (Exception e) {... continue; PutFileServerCon for binary files 4/4 try { // service delegated to a new thread new PutFileServerThread(clientSocket).start(); /* IMPORTANT!!! The socket is closed ONLY by the child process. If the father tries to close the socket you could incur in race conditions (due to shared memory). */ catch (Exception e) {... continue; // while catch (Exception e) {... System.exit(2); // main // PutFileServerCon 11
12 Proposed Exercise Develop a C/S application that manages the transfer of all the files in a specific directory from the server to the client (multiple get). Specification: Client The client asks the user the name of the directory, relative to the working directory of the server, connects to the server (using java.net.socket), builds an output stream to send the request and an input stream to receive the files or a negative response, if the directory does not exist. Requested files are saved in the working directory, overwriting existing files having the same name. 12
13 Specification: Server Server listens for client connection requests (using java.net.serversocket), then uses the resulting connected socket (java.net.socket) to build an input stream to receive a request and an output stream to send requested files or a negative response, then closes the connection. Server must use the same socket to send all the files. Server must be concurrent and parallel. For each request received by the father process, it must activate a child that manages the service completion. Implementation Hints To correctly send files, it is necessary to design a protocol to handle multiple file transfers. For example the server, before sending the first file, could send the file name and its size in bytes, then sends the byte stream. The server follows this protocol for each file and uses the same socket for all transfers. All these steps are repeated until the server has sent all the files in the requested directory, then the server closes the connection to notify the end of transmission. Client File1 File2 File3 Server filename1 length1 File1 filename2 length2 File2 filename3 length3 File3 13
14 Implementation Hints To open a directory use a File object: File dir = new File(dirName); To verify if a file (or a directory) exists: dir.exists(); //return true or false To verify if the File object is a directory: dir.isdirectory(); //return true or false To get all the files in the directory: File[] files = dir.listfiles(); Implementation Hints n_byte_file_transfer() function: protected static void n_byte_file_transfer(datainputstream src, DataOutputStream dest, long nbytes) throws IOException { int cont = 0; // loop: read from source and write to dest int buffer = 0; try { // exit the cycle after reading nbytes bytes while (cont < nbytes) { buffer = src.read(); dest.write(buffer); cont++; dest.flush(); System.out.println("Transferred bytes: " + cont); catch (EOFException e) { System.out.println("Error: "); e.printstacktrace(); 14
Principles, Models, and Applications for Distributed Systems M
Università degli Studi di Bologna Facoltà di Ingegneria Principles, Models, and Applications for Distributed Systems M Lab assignment 4 (worked-out) Connection-oriented Java Sockets Luca Foschini Winter
More informationPrinciples, Models and Applications for Distributed Systems M
Università degli Studi di Bologna Facoltà di Ingegneria Principles, Models and Applications for Distributed Systems M Lab assignment 2 (worked-out) Connectionless Java Sockets Luca Foschini 2010/2011 Exercise
More informationWeek 12. Streams and File I/O. Overview of Streams and File I/O Text File I/O
Week 12 Streams and File I/O Overview of Streams and File I/O Text File I/O 1 I/O Overview I/O = Input/Output In this context it is input to and output from programs Input can be from keyboard or a file
More informationpublic static void main(string[] args) throws IOException { sock = new Socket(args[0], Integer.parseInt(args[1]));
Echo Client&Server Application EchoClient import java.net.*; import java.io.*; class EchoClient public static void main(string[] args) throws IOException if (args.length < 2) number>"); System.err.println("Usage:
More informationJAVA - NETWORKING (SOCKET PROGRAMMING)
JAVA - NETWORKING (SOCKET PROGRAMMING) http://www.tutorialspoint.com/java/java_networking.htm Copyright tutorialspoint.com The term network programming refers to writing programs that execute across multiple
More informationJava Support for developing TCP Network Based Programs
Java Support for developing TCP Network Based Programs 1 How to Write a Network Based Program (In Java) As mentioned, we will use the TCP Transport Protocol. To communicate over TCP, a client program and
More informationCS 355. Computer Networking. Wei Lu, Ph.D., P.Eng.
CS 355 Computer Networking Wei Lu, Ph.D., P.Eng. Chapter 2: Application Layer Overview: Principles of network applications? Introduction to Wireshark Web and HTTP FTP Electronic Mail: SMTP, POP3, IMAP
More informationJava Networking (sockets)
Java Networking (sockets) Rui Moreira Links: http://java.sun.com/docs/books/tutorial/networking/toc.html#sockets http://www.javaworld.com/javaworld/jw-12-1996/jw-12-sockets_p.html Networking Computers
More informationCSCD 330 Network Programming Spring 2018
CSCD 330 Network Programming Spring 2018 Lecture 6 Application Layer Socket Programming in Java Reading for Java Client/Server see Relevant Links Some Material in these slides from J.F Kurose and K.W.
More informationJava Socket Application. Distributed Systems IT332
Java Socket Application Distributed Systems IT332 Outline Socket Communication Socket packages in Java Multithreaded Server Socket Communication A distributed system based on the client server model consists
More informationCPSC 441 Assignment-3 Discussion. Department of Computer Science University of Calgary
CPSC 441 Assignment-3 Discussion Department of Computer Science University of Calgary Overview of FastFTP protocol TCP for Initial Handshake Port: 2245 Port: 4576 You may choose any free port >1024 at
More informationWINDOWS SOCKET PROGRAMMING
WINDOWS SOCKET PROGRAMMING Headers and libraries All the declarations are in one header, winsock.h Your socket programs must link to the Winsock library (usually called wsock32.lib or winsock32.lib) Initialization
More informationHomework 3 Huffman Coding. Due Thursday October 11
Homework 3 Huffman Coding Due Thursday October 11 Huffman Coding Implement Huffman Encoding and Decoding and the classes shown on the following slides. You will also need to use Java s stack class HuffmanEncode
More informationLab 1 : Java Sockets
Lab 1 : Java Sockets 1. Goals In this lab you will work with a low-level mechanism for distributed communication. You will discover that Java sockets do not provide: - location transparency - naming transparency
More informationCPSC 441 UDP Socket Programming. Department of Computer Science University of Calgary
CPSC 441 UDP Socket Programming Department of Computer Science University of Calgary Socket programming using UDP (vs TCP) UDP: no connection between client and server vno handshaking vsender explicitly
More informationCS 251 Intermediate Programming Java I/O Streams
CS 251 Intermediate Programming Java I/O Streams Brooke Chenoweth University of New Mexico Spring 2018 Basic Input/Output I/O Streams mostly in java.io package File I/O mostly in java.nio.file package
More informationLösningsförslag till tentamen
till tentamen 1 (5) Kursnamn Objektorienterade applikationer Tentamensdatum 2018-08-27 Program DAI 2 Läsår 2017/2018, lp 3 Examinator Uno Holmer Uppgift 1 (6 p) Detta diagram är ett exempel på designmönstret
More informationCS2307 NETWORKS LAB 1. Programs using TCP Sockets (like date and time server & client, echo server & client, etc.) 2. Programs using UDP Sockets
CS2307 NETWORKS LAB 1. Programs using TCP Sockets (like date and time server & client, echo server & client, etc.) 2. Programs using UDP Sockets (like simple DNS) 3. Programs using Raw sockets (like packet
More informationNetworking Basics. network communication.
JAVA NETWORKING API Networking Basics When you write Java programs that communicate over the network, you are programming at the application layer. Typically, you don't need to concern yourself with the
More informationCPSC 441 Assignment-3 Discussion. Department of Computer Science University of Calgary
CPSC 441 Assignment-3 Discussion Department of Computer Science University of Calgary Overview of FastFTP protocol TCP for Initial Handshake Port: 1111 Port: 4444 UDP for File Content Transfer Port: 3333
More informationCommunication in Distributed Systems: Sockets Programming. Operating Systems
Communication in Distributed Systems: Sockets Programming Operating Systems TCP/IP layers Layers Message Application Transport Internet Network interface Messages (UDP) or Streams (TCP) UDP or TCP packets
More information09-1. CSE 143 Java GREAT IDEAS IN COMPUTER SCIENCE. Overview. Data Representation. Representation of Primitive Java Types. Input and Output.
CSE 143 Java Streams Reading: 19.1, Appendix A.2 GREAT IDEAS IN COMPUTER SCIENCE REPRESENTATION VS. RENDERING 4/28/2002 (c) University of Washington 09-1 4/28/2002 (c) University of Washington 09-2 Topics
More information830512@itri.org.tw import java.net.socket; import java.net.serversocket; import java.io.ioexception; /* ---------- Java Server ---------- */ public class Nets static Socket thesocket; static ServerThread
More informationTCP and UDP Socket Programming in JAVA TCP Socket Programming 1. Write code for Client and save in GreetingClient.java
TCP Socket Programming 1. Write code for Client and save in GreetingClient.java // File Name GreetingClient.java public class GreetingClient public static void main(string [] args) String servername =
More informationObject-Oriented Programming in Java
CSCI/CMPE 3326 Object-Oriented Programming in Java 1. Socket Programming Dongchul Kim Department of Computer Science University of Texas Rio Grande Valley Two types of TCP Socket java.net.serversocket
More informationMulti-threaded Web Server (Assignment 1) Georgios Georgiadis
Multi-threaded Web Server (Assignment 1) Georgios Georgiadis Overview Multi-threaded Web Server What to do and how to do it HTTP messages Processes and threads ComputerComm '09 2 Multi-threaded Web Server
More informationNetwork. Dr. Jens Bennedsen, Aarhus University, School of Engineering Aarhus, Denmark
Network Dr. Jens Bennedsen, Aarhus University, School of Engineering Aarhus, Denmark jbb@ase.au.dk Outline Socket programming If we have the time: Remote method invocation (RMI) 2 Socket Programming Sockets
More informationOverview CSE 143. Input and Output. Streams. Other Possible Kinds of Stream Converters. Stream after Stream... CSE143 Wi
CSE 143 Overview Topics Streams communicating with the outside world Basic Java files Other stream classes Streams Reading: Ch. 16 2/3/2005 (c) 2001-5, University of Washington 12-1 2/3/2005 (c) 2001-5,
More informationExceptions and Working with Files
Exceptions and Working with Files Creating your own Exceptions. You have a Party class that creates parties. It contains two fields, the name of the host and the number of guests. But you don t want to
More informationDistributed Systems. 3. Access to the Transport Layer. Werner Nutt
Distributed Systems 3. Access to the Transport Layer Werner Nutt 1 Access to the Transport Layer Processes issue requests to the transport layer (i.e., the application takes the initiative, not the transport
More informationCSCD 330 Network Programming Spring 2018
CSCD 330 Network Programming Spring 2018 Lecture 7 Application Layer Socket Programming in Java Reading: Chapter 2, Java links Relevant Links page Some Material in these slides from J.F Kurose and K.W.
More informationInternet Technology 2/7/2013
Sample Client-Server Program Internet Technology 02r. Programming with Sockets Paul Krzyzanowski Rutgers University Spring 2013 To illustrate programming with TCP/IP sockets, we ll write a small client-server
More informationCSCD 330 Network Programming Winter 2019
CSCD 330 Network Programming Winter 2019 Lecture 7 Application Layer Socket Programming in Java Reading: Chapter 2, Java links Relevant Links page Some Material in these slides from J.F Kurose and K.W.
More informationDistributed Programming - Sockets
Distributed Programming - Sockets Piet van Oostrum May 25, 2009 Concurrency In praktische situaties krijgen we concurrency door: Processen Threads Interrupts (alleen intern in het O.S.) Processen Onafhankelijke
More informationOverview CSE 143. Data Representation GREAT IDEAS IN COMPUTER SCIENCE. Representation of Primitive Java Types. CSE143 Sp
Overview CSE 143 Topics Data representation bits and bytes Streams communicating with the outside world Basic Java files Other stream classes Streams Reading: Ch. 16 4/27/2004 (c) 2001-4, University of
More informationCOMP 213. Advanced Object-oriented Programming. Lecture 20. Network Programming
COMP 213 Advanced Object-oriented Programming Lecture 20 Network Programming Network Programming A network consists of several computers connected so that data can be sent from one to another. Network
More informationOverview CSE 143. Data Representation GREAT IDEAS IN COMPUTER SCIENCE. Representation of Primitive Java Types. CSE143 Au
Overview CSE 143 Topics Data representation bits and bytes Streams communicating with the outside world Basic Java files Other stream classes Streams Reading: Sec. 19.1, Appendix A2 11/2/2003 (c) 2001-3,
More informationOverview CSE 143. Data Representation GREAT IDEAS IN COMPUTER SCIENCE
Overview CSE 143 Topics Data representation bits and bytes Streams communicating with the outside world Basic Java files Other stream classes Streams Reading: Sec. 19.1, Appendix A2 11/2/2003 (c) 2001-3,
More informationDarshan Institute of Engineering & Technology for Diploma Studies
Streams A stream is a sequence of data. In Java a stream is composed of bytes. In java, 3 streams are created for us automatically. 1. System.out : standard output stream 2. System.in : standard input
More informationNetworking Code CSCI 201 Principles of Software Development
Networking Code CSCI 201 Principles of Software Development Jeffrey Miller, Ph.D. jeffrey.miller@usc.edu Server Networking Client Networking Program Outline USC CSCI 201L Server Software A server application
More informationActive Learning: Streams
Lecture 29 Active Learning: Streams The Logger Application 2 1 Goals Using the framework of the Logger application, we are going to explore three ways to read and write data using Java streams: 1. as text
More informationIntroduction to Sockets
Introduction to Sockets Sockets in Java 07/02/2012 EPL 602 1 Socket programming Goal: learn how to build client/server application that communicate using sockets Socket API o introduced in BSD4.1 UNIX,
More informationprotocols September 15,
Contents SCI 351 4 Protocols, WWW Internet applications WWW, document technology Lennart Herlaar Original slides by Piet van Oostrum September 15, 2003 SCI351-4 1 X SCI351-4 1 X Internet applications How
More informationChapter 2: outline. 2.1 principles of network applications. 2.6 P2P applications 2.7 socket programming with UDP and TCP
Chapter 2: outline 2.1 principles of network applications app architectures app requirements 2.2 Web and HTTP 2.3 FTP 2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 socket programming
More informationChapter 2 Application Layer
Chapter 2 Application Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and
More informationOverview CSE 143. Data Representation GREAT IDEAS IN COMPUTER SCIENCE
CSE 143 Overview Topics Data representation bits and bytes Streams communicating with the outside world Basic Java files Other stream classes Streams Reading: Ch. 16 10/20/2004 (c) 2001-4, University of
More informationReading and Writing Files
Reading and Writing Files 1 Reading and Writing Files Java provides a number of classes and methods that allow you to read and write files. Two of the most often-used stream classes are FileInputStream
More informationPractical Exercises in Computer Networks and Distributed Systems
Practical Exercises in Computer Networks and Distributed Systems Java Threads for speeding up Clients and Servers (WIP) 2013-2017, José María Foces Morán In this lab we extend the file service C/S application
More informationData Structures. 03 Streams & File I/O
David Drohan Data Structures 03 Streams & File I/O JAVA: An Introduction to Problem Solving & Programming, 6 th Ed. By Walter Savitch ISBN 0132162709 2012 Pearson Education, Inc., Upper Saddle River, NJ.
More informationAdvanced Java Programming. Networking
Advanced Java Programming Networking Eran Werner and Ohad Barzilay Tel-Aviv University Advanced Java Programming, Spring 2006 1 Overview of networking Advanced Java Programming, Spring 2006 2 TCP/IP protocol
More informationCS1092: Tutorial Sheet: No 3 Exceptions and Files. Tutor s Guide
CS1092: Tutorial Sheet: No 3 Exceptions and Files Tutor s Guide Preliminary This tutorial sheet requires that you ve read Chapter 15 on Exceptions (CS1081 lectured material), and followed the recent CS1092
More informationMultiplayer Game Programming 2/26
Multiplayer Game Programming 2/26 1. Turn off Windows Firewall 2. Download and install Python and Notepad++ a. Python.org downloads/python/install b. Notepad-plus-plus.org download/install 3. Download
More informationPrinciples of Software Construction. Introduction to networks and distributed systems School of Computer Science
Principles of Software Construction Introduction to networks and distributed systems Josh Bloch Charlie Garrod School of Computer Science 1 Administrivia Homework 5 Best Frameworks available tonight Or
More informationProgramming Methods Dr Robert Harle
Programming Methods Dr Robert Harle IA NST CS and CST Lent 2008/09 Handout 4 Our Motivating Example We re going to make the world s simplest web server It s not going to challenge apache etc But it will
More informationInternet and Intranet Applications and Protocols Examples of Bad SMTP Code Prof. Arthur P. Goldberg Spring, 2004
Internet and Intranet Applications and Protocols Examples of Bad SMTP Code Prof. Arthur P. Goldberg Spring, 00 Summary I show some examples of bad code and discuss how they fail to meet the Software Quality
More information1993: renamed "Java"; use in a browser instead of a microwave : Sun sues Microsoft multiple times over Java
Java history invented mainly by James Gosling ([formerly] Sun Microsystems) 1990: Oak language for embedded systems needs to be reliable, easy to change, retarget efficiency is secondary implemented as
More informationCS September 2017
Machine vs. transport endpoints IP is a network layer protocol: packets address only the machine IP header identifies source IP address, destination IP address Distributed Systems 01r. Sockets Programming
More informationStarting Out with Java: From Control Structures Through Objects Sixth Edition
Starting Out with Java: From Control Structures Through Objects Sixth Edition Chapter 11 I/O File Input and Output Reentering data all the time could get tedious for the user. The data can be saved to
More informationObject-Oriented Programming Design. Topic : Streams and Files
Electrical and Computer Engineering Object-Oriented Topic : Streams and Files Maj Joel Young Joel Young@afit.edu. 18-Sep-03 Maj Joel Young Java Input/Output Java implements input/output in terms of streams
More informationWorld Scientific Research Journal (WSRJ) ISSN: The Implementation of Tcp Socket Programming based on Java
World Scientific Research Journal (WSRJ) ISSN: 2472-3703 www.wsr-j.org The Implementation of Tcp Socket Programming based on Java Deen Chen Computer Science Department, North China Electric Power University,
More informationCPSC 441 Tutorial TCP Server. Department of Computer Science University of Calgary
CPSC 441 Tutorial TCP Server Department of Computer Science University of Calgary TCP Socket Client Server Connection Request Server Listening on welcoming socket Client Socket Server Socket Data Simple
More informationThe Java I/O System. Binary I/O streams (ASCII, 8 bits) The decorator design pattern Character I/O streams (Unicode, 16 bits)
The Java I/O System Binary I/O streams (ASCII, 8 bits) InputStream OutputStream The decorator design pattern Character I/O streams (Unicode, 16 bits) Reader Writer Comparing binary I/O to character I/O
More informationCOMP 213. Advanced Object-oriented Programming. Lecture 19. Input/Output
COMP 213 Advanced Object-oriented Programming Lecture 19 Input/Output Input and Output A program that read no input and produced no output would be a very uninteresting and useless thing. Forms of input/output
More informationChapter 4: Processes
Chapter 4: Processes Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication Communication in Client-Server Systems 4.1 Process Concept An operating
More informationI gave this assignment in my Internet and Intranet Protocols and Applications course:
Producing Production Quality Software Lecture 1b: Examples of Bad Code Prof. Arthur P. Goldberg Fall, 2004 Summary I show some examples of bad code and discuss how they fail to meet the Software Quality
More informationSpecial error return Constructors do not have a return value What if method uses the full range of the return type?
23 Error Handling Exit program (System.exit()) usually a bad idea Output an error message does not help to recover from the error Special error return Constructors do not have a return value What if method
More informationneeds to be reliable, easy to change, retarget efficiency is secondary implemented as interpreter, with virtual machine
Java history invented mainly by James Gosling ([formerly] Sun Microsystems) 1990: Oak language for embedded systems needs to be reliable, easy to change, retarget efficiency is secondary implemented as
More informationDistributed Systems COMP 212. Lecture 8 Othon Michail
Distributed Systems COMP 212 Lecture 8 Othon Michail HTTP Protocol Hypertext Transfer Protocol Used to transmit resources on the WWW HTML files, image files, query results, Identified by Uniform Resource
More informationToday. Book-keeping. File I/O. Subscribe to sipb-iap-java-students. Inner classes. Debugging tools
Today Book-keeping File I/O Subscribe to sipb-iap-java-students Inner classes http://sipb.mit.edu/iap/java/ Debugging tools Problem set 1 questions? Problem set 2 released tomorrow 1 2 So far... Reading
More informationTitle Description Participants Textbook
Podcast Ch23c Title: Binary Files Description: Overview of binary files; DataInputStream; DataOutputStream; Program 23.1; file compression Participants: Barry Kurtz (instructor); John Helfert and Tobie
More informationChapter 2 Applications and
Chapter 2 Applications and Layered Architectures Sockets Socket API API (Application Programming Interface) Provides a standard set of functions that can be called by applications Berkeley UNIX Sockets
More informationLab 10: Sockets 12:00 PM, Apr 4, 2018
CS18 Integrated Introduction to Computer Science Fisler, Nelson Lab 10: Sockets 12:00 PM, Apr 4, 2018 Contents 1 The Client-Server Model 1 1.1 Constructing Java Sockets.................................
More informationStreams and File I/O
Chapter 9 Streams and File I/O Overview of Streams and File I/O Text File I/O Binary File I/O File Objects and File Names Chapter 9 Java: an Introduction to Computer Science & Programming - Walter Savitch
More informationIntroduction to Sockets 9/25/14
Introduction to Sockets 9/25/14 81 Remote communication Inter-process communication is at the heart of all distributed systems Using the network protocol stack on a node is the only way to communicate
More informationCSC 1214: Object-Oriented Programming
CSC 1214: Object-Oriented Programming J. Kizito Makerere University e-mail: www: materials: e-learning environment: office: alt. office: jkizito@cis.mak.ac.ug http://serval.ug/~jona http://serval.ug/~jona/materials/csc1214
More information5/29/2006. Announcements. Last Time. Today. Text File I/O Sample Programs. The File Class. Without using FileReader. Reviewed method overloading.
Last Time Reviewed method overloading. A few useful Java classes: Other handy System class methods Wrapper classes String class StringTokenizer class Assn 3 posted. Announcements Final on June 14 or 15?
More informationSocket 101 Excerpt from Network Programming
Socket 101 Excerpt from Network Programming EDA095 Nätverksprogrammering Originals by Roger Henriksson Computer Science Lund University Java I/O Streams Stream (swe. Ström) - A stream is a sequential ordering
More informationAssignment 1. Due date February 6, 2007 at 11pm. It must be submitted using submit command.
Assignment 1 Due date February 6, 2007 at 11pm. It must be submitted using submit command. Note: submit 4213 a1 . Read the manpages ("man submit") for more details on the submit command. It is
More informationChapter 12. File Input and Output. CS180-Recitation
Chapter 12 File Input and Output CS180-Recitation Reminders Exam2 Wed Nov 5th. 6:30 pm. Project6 Wed Nov 5th. 10:00 pm. Multitasking: The concurrent operation by one central processing unit of two or more
More informationWeb Server Project. Tom Kelliher, CS points, due May 4, 2011
Web Server Project Tom Kelliher, CS 325 100 points, due May 4, 2011 Introduction (From Kurose & Ross, 4th ed.) In this project you will develop a Web server in two steps. In the end, you will have built
More informationInterprocess Communication
Interprocess Communication Nicola Dragoni Embedded Systems Engineering DTU Informatics 4.2 Characteristics, Sockets, Client-Server Communication: UDP vs TCP 4.4 Group (Multicast) Communication The Characteristics
More informationJava for Interfaces and Networks
Java for Interfaces and Networks Threads and Networking Federico Pecora School of Science and Technology Örebro University federico.pecora@oru.se Federico Pecora Java for Interfaces and Networks Lecture
More informationPerforming input and output operations using a Byte Stream
Performing input and output operations using a Byte Stream public interface DataInput The DataInput interface provides for reading bytes from a binary stream and reconstructing from them data in any of
More informationWeek 13 Lab - Exploring Connections & Remote Execution
Week 13 Lab - Exploring Connections & Remote Execution COSC244 & TELE202 1 Assessment This lab is worth 0.5%. The marks are awarded for completing the programming exercise and answering the questions.
More informationPrevious lecture: threads G51PRG: Introduction to Programming Second semester Lecture 12 URL
Previous lecture: threads G51PRG: Introduction to Programming Second semester Lecture 12 What is a thread Why use multiple threads Issues and problems involved Java threads Natasha Alechina School of Computer
More informationPractical Exercises in Computer Networks and Distributed Systems
Practical Exercises in Computer Networks and Distributed Systems Java Sockets and the Client/Server model (WIP) 2014-2017, José María Foces Morán This Lab is devoted to Java Sockets and the Client/Server
More informationChapter 4: Processes. Process Concept. Process State
Chapter 4: Processes Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication Communication in Client-Server Systems 4.1 Process Concept An operating
More informationCompile error. 2. A run time error occurs when the program runs and is caused by a number of reasons, such as dividing by zero.
(טיפול בשגיאות) Exception handling We learn that there are three categories of errors : Syntax error, Runtime error and Logic error. A Syntax error (compiler error) arises because a rule of the language
More informationJava in 21 minutes. Hello world. hello world. exceptions. basic data types. constructors. classes & objects I/O. program structure.
Java in 21 minutes hello world basic data types classes & objects program structure constructors garbage collection I/O exceptions Strings Hello world import java.io.*; public class hello { public static
More informationCS 200 File Input and Output Jim Williams, PhD
CS 200 File Input and Output Jim Williams, PhD This Week 1. WaTor Change Log 2. Monday Appts - may be interrupted. 3. Optional Lab: Create a Personal Webpage a. demonstrate to TA for same credit as other
More informationGetting Started in Java. Bill Pugh Dept. of Computer Science Univ. of Maryland, College Park
Getting Started in Java Bill Pugh Dept. of Computer Science Univ. of Maryland, College Park Hello, World In HelloWorld.java public class HelloWorld { public static void main(string [] args) { System.out.println(
More informationCS 351 Design of Large Programs Sockets Example
CS 351 Design of Large Programs Sockets Example Brooke Chenoweth University of New Mexico Spring 2019 Socket Socket(String host, int port) InputStream getinputstream() OutputStream getoutputstream() void
More informationFile IO. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 20
File IO Computer Science and Engineering College of Engineering The Ohio State University Lecture 20 I/O Package Overview Package java.io Core concept: streams Ordered sequences of data that have a source
More informationA sample print out is: is is -11 key entered was: w
Lab 9 Lesson 9-2: Exercise 1, 2 and 3: Note: when you run this you may need to maximize the window. The modified buttonhandler is: private static class ButtonListener implements ActionListener public void
More information10/8/2018 Programming Data Structures. class diagram for assignment 08 review: polymorphism review: exception new: File I/O
10/8/2018 Programming Data Structures class diagram for assignment 08 review: polymorphism review: exception new: File I/O 1 class diagram (informal) link the parent classes and child classes describe
More information1.00 Lecture 30. Sending information to a Java program
1.00 Lecture 30 Input/Output Introduction to Streams Reading for next time: Big Java 15.5-15.7 Sending information to a Java program So far: use a GUI limited to specific interaction with user sometimes
More informationתוכנה 1 תרגול 8 קלט/פלט רובי בוים ומתי שמרת
תוכנה 1 תרגול 8 קלט/פלט רובי בוים ומתי שמרת A Typical Program Most applications need to process some input and produce some output based on that input The Java IO package (java.io) is to make that possible
More informationICOM 4015-Advanced Programming. Spring Instructor: Dr. Amir H. Chinaei. TAs: Hector Franqui, Jose Garcia, and Antonio Tapia. Reference: Big Java
ICOM 4015-Advanced Programming Spring 2014 Instructor: Dr. Amir H. Chinaei TAs: Hector Franqui, Jose Garcia, and Antonio Tapia Reference: Big Java By Hortsmann, Ed 4 Lab 7 Continuation of HTTP and Introduction
More informationCS Week 11. Jim Williams, PhD
CS 200 - Week 11 Jim Williams, PhD This Week 1. Exam 2 - Thursday 2. Team Lab: Exceptions, Paths, Command Line 3. Review: Muddiest Point 4. Lecture: File Input and Output Objectives 1. Describe a text
More informationCSCI Computer Networking: Application Layer Programming George Blankenship. Programming George Blankenship 1
CSCI 6431 Computer Networking: Application Layer Programming George Blankenship Programming George Blankenship 1 Lecture Outline Programming concepts PDUs and SDUs Transport Interface System-to-system
More information