15
Networking with Java CSc 335 Object-Oriented Programming and Design Spring 2009

Networking with Java

  • Upload
    ronna

  • View
    41

  • Download
    3

Embed Size (px)

DESCRIPTION

Networking with Java. CSc 335 Object-Oriented Programming and Design Spring 2009. Acknowledgements. These slides were written by Craig Barber. Some slides from Martin Stepp were used. The slides were modified slightly by Richard Snodgrass and reorganized by Ivan Vazquez. Networking. - PowerPoint PPT Presentation

Citation preview

Page 1: Networking with Java

Networking with Java

CSc 335Object-Oriented Programming and Design

Spring 2009

Page 2: Networking with Java

Networking with Java N-2

Acknowledgements

• These slides were written by Craig Barber.

• Some slides from Martin Stepp were used.

• The slides were modified slightly by Richard Snodgrass and reorganized by Ivan Vazquez.

Page 3: Networking with Java

Networking

Refactoring Y-3Refactoring Y-3Refactoring Y-3

ConcurrencyNetworksSerialization

Javadoc

JUnitEclipse

Debugging

Testing &Maintaing

LargePrograms

Teams

Reading others’code

MVC

ObserverObservable

DesignPatterns

UML

ClassDiagrams

InheritanceHierarchy

Coupling/Cohesion

OO Design

PITL

SequenceDiagrams

PackageDiagrams

AnonymousClasses

AbstractClasses

Packages

JDK/JRE

Java Language

Compile-TimeRun-Time

Type ResolutionType Checking

Java Swing

Frameworks

Java API

Inversionof Control

Layout Manager

ListenersEvents

I/O

Iterator

Collection

Exceptions

Composite

CommandTemplate

Decorator

N-3

Page 4: Networking with Java

Networking with Java N-4

Outline

• Introduction to Networking Concepts Client-Server and Peer-to-Peer Sockets Streams

• Networking in Java

• Summary

Page 5: Networking with Java

Networking with Java N-5

What is “Networking”• What is “Networking”?

Basic: getting two or more computers to send data to each other

Practical: 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 Clients connect to a group of other clients, with no server. Clients communicating directly with each-other.

Page 6: Networking with Java

Networking with Java N-6

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

Page 7: Networking with Java

Networking with Java N-7

Peer-to-Peer Networking• Advantages:

No main server Easier for clients to enter and

leave Easier for spreading updates

• Disadvantages: Less control over users Harder to coordinate More difficult to implement

codeQuickTime™ and a TIFF (Uncompressed) decompressor are needed to see this picture.

Page 8: Networking with Java

Networking with Java N-8

How Does 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.

• Note: streams are also used in Java for input and output.

Page 9: Networking with Java

Networking with Java N-9

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.

Page 10: Networking with Java

Networking with Java N-10

Outline

• Introduction to Networking Concepts

• Networking in Java Sockets Streams Decorating Streams

• Summary

Page 11: Networking with Java

Networking with Java N-11

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

Page 12: Networking with Java

Networking with Java

Sockets in Java

N-12

Host Machine

Process

Host Machine

Process

ServerSocket

InputSocket

OutputSocket

Socket

Socket

Socket

InputSocket

Process

Socket

Host Machine

Page 13: Networking with Java

Networking with Java N-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.

Page 14: Networking with Java

Networking with Java N-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

Page 15: Networking with Java

Networking with Java N-15

Summary

• Networking is actually doable, when using Java’s convenient API.

• Networking is integrated with input and output: both use streams.

• Decorators make your life much easier.

• Advanced applications often use serialization and threads.