Notes of BCA 4th Sem 2021-22, DBMS Java-Networking.pdf - Study Material
Page 1 :
Networking with Java, , CSc 335, Object-Oriented Programming and Design, Craig Barber, Ian Vasquez, Rick Snodgrass, Rick Mercer
Page 2 :
Networking, Type Resolution, Type Checking, , Compile-Time, Run-Time, Java API, , Java Language, , I/O, , Abstract, Classes, , Packages, , Serialization, , Networks, , Concurrency, , Frameworks, , Collection, , Anonymous, Classes, , Exceptions, , Java Swing, JDK/JRE, , Listeners, Events, , Inversion, of Control, , Template, , MVC, , Iterator, , Command, , Debugging, JUnit, , Testing &, Maintaing, Large, Programs, , Eclipse, , Javadoc, , Teams, , PITL, , Layout, Manager, , Observer, Observable, Decorator, , Composite, , Design, Patterns, , Coupling/, Cohesion, OO Design, , Reading, others’, code, Refactoring, , Refactoring, , Inheritance, Hierarchy, , UML, , Class, Diagrams, , Sequence, Diagrams, , Package, Diagrams, N-2, Y-2
Page 3 :
Outline, • Introduction to Networking Concepts, , , , , , Client-Server and Peer-to-Peer, Sockets, Streams, , Networking with Java, , N-3
Page 4 :
What is “Networking”, •, , What is “Networking”?, , , , , •, , Getting two or more computers to send data (in Java-serialized objects) to each other, Having programs on separate computers interact with one, another, , Types of Networking, , , Client - Server, , , , , , Many clients connect with one server., Clients communicate only with server., , Peer-to-Peer, , , , Networking with Java, , Clients connect to a group of other clients, with no server., Clients communicating directly with each-other., N-4
Page 5 :
Client - Server Networking, • Advantages:, , , , , , Easier to implement, Less coordination, involved, Easier to maintain, control of users, , • Disadvantage:, , , Relies on one main, server for entire, operation, , Networking with Java, , N-5
Page 6 :
How Can Networking Work?, • Computers connect to each other through links called, •, •, , sockets, each associated with a single computer., A network stream is created by connecting a socket on, one computer to a socket on another computer, Applications communicate by sending data through, streams to each other, , , Reading and writing objects over the network employs the, same serialization you used for persistence, , Networking with Java, , N-6
Page 7 :
Sockets, • A socket is a connection on one computer used to send, •, •, •, , data back and forth, The application consists of multiple processes, one, running on each computer, Sockets are created by the process on each computer, The sockets then establish a connection to each other, , , , One process sets up a server socket to receive a connection., The other process sets up a client socket to establish the, connection with the server socket., , Networking with Java, , N-7
Page 8 :
Socket-programming using TCP, TCP service: reliable byte stream transfer, client, , socket( ), bind( ), connect( ), , send( ), , socket( ), bind( ), listen( ), , TCP conn. request, TCP ACK, , server, , accept( ), recv( ), , recv( ), close( ), controlled by, application, developer, controlled by, operating, system, Networking with Java, , send( ), close( ), , process, socket, TCP with, buffers,, variables, , process, , internet, , socket, TCP with, buffers,, variables, N-8
Page 9 :
Outline, • Introduction to Networking Concepts, • Networking in Java, , , , , Sockets, Streams, Decorating Streams, , • Summary, , Networking with Java, , N-9
Page 10 :
Sockets in Java, • Found in java.net package, • java.net.ServerSocket, , , , Accepts new incoming connections, Creates new ServerSocket for each connection, , • java.net.Socket, , , Connects to an existing ServerSocket, through the, network, , Networking with Java, , N-10
Page 11 :
Sockets in Java, Host Machine, , Client Machine, , Process, , Process, , Server, Socket, , Socket, , Socket, , Output, Socket, , Input, Socket, , Socket, Input, Socket, , Client Machine, Process, Socket, , Networking with Java, , N-11
Page 12 :
Two new types, • We'll be using two new types, • java.net.ServerSocket, • java.net.Socket, , , Networking with Java, , You can write to and read from a Socket's input and, output streams with readObject and writeObject messages, which makes networked programs easier to develop, , N-12
Page 13 :
java.net.ServerSocket, • public ServerSocket(int port), , , , Throws IOException, Creates a ServerSocket to accept new connections at the specified, port, , • public Socket accept(), , , , , , Throws IOException, Waits for an incoming connection, establishes the new connection, and, returns a socket for that connection, Multiple applications can connect to the same ServerSocket, , • public void close(), , , , , Throws IOException, Closes the server socket., Does not close open sockets., , Networking with Java, , N-13
Page 14 :
java.net.Socket, • public Socket(String host, int port), , , , Throws IOException, UnknownHostException, Connects to a server socket at the provided address (host) on the provided, port, , • public InputStream getInputStream(), , , Throws IOException, , , , Returns the input stream from the socket, , • public OutputStream getOutputStream(), , , Throws IOException, , , , Returns the output stream from the socket, , • public void close(), , , Throws IOException, , , , Closes the connection, , Networking with Java, , N-14
Page 15 :
Building a Network app, • This app will have one server and only one client (no, •, , Threads needed), Build the server first, , , , Need a new ServerSocket (int port), The accept message to ServerSocket waits for a connection, that knows where the server is and what port it is listening to, , int port = 4000; // A port available on lectura soince 2003, ServerSocket socket = new ServerSocket(port);, Socket connection = socket.accept();, , Networking with Java, , N-15
Page 17 :
Let the server read and write in loop, • Let the server communicate with the connection, // Take money from the client's account, BankAccount theClientsAccount = null;, BankAccount theServersAccount = new BankAccount("Greedy", 0.00);, while (true) {, double amount = ((Double) input.readObject()).doubleValue();, if (amount <= 0.0), break;, theClientsAccount = (BankAccount) input.readObject();, if (theClientsAccount.withdraw(amount)), theServersAccount.deposit(amount);, // Send back the modified object, output.writeObject(theClientsAccount);, }, connection.close();, , Networking with Java, , N-17
Page 19 :
Write the Client, • Request a socket connection with the running sever, // This IPAddress is for the machine where this code will run, // We'll run the server and the client on the same machine for now, String IPAddress = "localhost"; // There's no place like home, int port = 4000;, Socket server = new Socket(IPAddress, port);, , Networking with Java, , N-19