Internet Programming - PowerPoint PPT Presentation

About This Presentation
Title:

Internet Programming

Description:

Do reverse lookup on the IP address. wpi.WPI.EDU/130.215.24.6 ... Do reverse lookup on current IP address of LocalHost. grover.wpi.edu/130.215.25.67 ... – PowerPoint PPT presentation

Number of Views:64
Avg rating:3.0/5.0
Slides: 34
Provided by: karenl6
Learn more at: http://web.cs.wpi.edu
Category:

less

Transcript and Presenter's Notes

Title: Internet Programming


1
Internet Programming
  • In Java

2
References
  • www.cafeaulait.org
  • Java.sun.com
  • http//home.att.net/baldwin.rick/Advanced/Java552
  • Many of the programs shown here come from these 3
    sites

3
InetAddress Class
  • Java.net.InetAddress
  • Represents an IP address ( xxx.xxx.xxx.xxx)
  • Converts
  • xxx.xxx.xxx.xxx ? machineName.domainName
  • machineName.domainName ? xxx.xxx.xxx.xxx
  • Used by other network classes
  • Socket
  • ServerSocket
  • ...

4
InetAddress Class
  • No public InetAddress( ) Constructors
  • Arbitrary addresses may not be created
  • All addresses checked with DNS
  • Provides objects that you can use to manipulate
    and deal with IP addresses and domain names.
  • Class provides several static methods that return
    an object of type InetAddress.

5
InetAddress ClassMethods
  • getByName ()
  • Public static InetAddress getByName(host)
  • Throws UNknownHostException
  • Returns an InetAddress object representing host
  • Can be used to determine the IP address of a
    host, given the host's name.
  • Host
  • machine name java.sun.com
  • IP address 206.26.48.100

6
InetAddress Class getByName (host)
  • InetAddress java1, java2
  • try
  • java1 InetAddress.getByName(java.sun.com")
  • java2 InetAddress.getByName("128.238.2.92")
  • catch (UnknownHostException e)
    System.err.println(e)
  • System.out.println(java1)
  • ...

7
InetAddress Class getAllByName (host)
  • Returns an array of InetAddress objects.
  • IP addresses of the specified host.

8
InetAddress Class getLocalHost (host)
  • Returns an InetAddress object representing the
    local host computer.

9
InetAddress Class
  • ? Show Url001.java
  • Get and display IP address of URL by name
  • wpi.wpi.edu/130.215.24.6
  • Do reverse lookup on the IP address
  • wpi.WPI.EDU/130.215.24.6
  • Get and display current IP address of LocalHost
  • grover.WPI.EDU/130.215.25.67
  • Do reverse lookup on current IP address of
    LocalHost
  • grover.wpi.edu/130.215.25.67
  • Get and display current name of LocalHost
  • grover.wpi.edu
  • Get and display current IP address of LocalHost
  • 130 215 25 67

10
Ports
  • Many hosts have only one Internet address
  • This address is subdivided into 65,536 ports
  • Ports are logical abstractions that allow one
    host to communicate simultaneously with many
    other hosts
  • Many services run on well-known ports
  • (HTTP on port 80)

11
Protocols
  • Defines how two hosts talk to each other.

12
URL Class
  • A URL object represents a URL.
  • contains methods to
  • create new URLs
  • parse the different parts of a URL
  • Get an input stream from a URL so you can read
    data from a server
  • Get content from the server as a Java object

13
java.net.URL Class
  • Content and protocol handlers
  • separate the data being downloaded from the the
    protocol used to download it.
  • The protocol handler
  • negotiates with the server and parses any
    headers.
  • Gives the content handler only the actual data of
    the requested resource.
  • The content handler
  • translates those bytes into a Java object
  • InputStream or ImageProducer, ...

14
java.net.URL ClassFinding Protocol Handlers
  • When virtual machine creates a URL object
  • looks for a protocol handler that understands
    the protocol part of the URL
  • "http" or "mailto".
  • If no such handler is found
  • the constructor throws a MalformedURLException

15
java.net.URL ClassSupported Protocols
  • Vary http and file are supported pretty much
    everywhere) . Sun's JDK 1
  • file
  • ftp
  • gopher
  • http
  • mailto
  • appletresource
  • doc
  • netdoc
  • systemresource
  • verbatim

16
java.net.URL ClassFour Constructors
  • public URL(String u) throws MalformedURLException
  • URL u null
  • try
  • u new URL("http//www.cs.wpi.edu/kal")
  • catch (MalformedURLException e)
  • ...
  • absolute URL.
  • Contains all information necessary to reach the
    resource

17
java.net.URL ClassFour Constructors
  • You can also create URL objects from a relative
    URL address.
  • 2. public URL(String protocol, String host,
    String file) throws MalformedURLException
  • URL u null
  • try
  • u new URL("http","www.cs.wpi.edu",
    "/kal/personal.html)
  • catch (MalformedURLException e)
  • ...
  • public URL(URL context, String u) throws
    MalformedURLException

18
java.net.URL ClassFour Constructors
  • 3. public URL(String protocol, String host, int
    port, String file) throws MalformedURLException
  • URL u null
  • try
  • u new URL("http",penguin.wpi.edu",4546,
  • "/webrecourse/htdocs/course/087254")
  • catch (MalformedURLException e)
  • ...

19
java.net.URL ClassFour Constructors
  • 4. public URL(URL context, String u) throws
    MalformedURLException
  • URL u1, u2
  • try
  • u1 new URL("http//www.cs.wpi.edu")
  • u2 new URL(u1, personal.html")
  • catch (MalformedURLException e)
  • ...

20
java.net.URL ClassParsing URLs
  • Five methods to split a URL into its component
    parts
  • public String getProtocol()
  • public String getHost()
  • public int getPort()
  • public String getFile()
  • public String getRef()
  • If a port is not explicitly specified in the URL,
    it's set to -1. ( default port is used)
  • If the ref doesn't exist, it's just null, so
    watch out for NullPointerExceptions. Better yet,
    test to see that it's non-null before using it.
  • If file is left off completely, e.g.
    http//wpi.cs.wpi.edu, then it's set to "/".

21
java.net.URL ClassParsing URLs
  • try
  • URL u new URL(http//www.wpi.edu")
  • System.out.println("The protocol is "
    u.getProtocol())
  • System.out.println("The host is " u.getHost())
  • System.out.println("The port is " u.getPort())
  • System.out.println("The file is " u.getFile())
  • System.out.println("The anchor is "
    u.getRef())
  • catch (MalformedURLException e)
  • Show Url002.java

22
Sockets
  • Socket one end-point of a two-way communication
    link between two programs running on a network.
  • Data sent across the Internet from one host to
    another using TCP/IP
  • Split into packets of varying but finite size
    called datagrams.
  • Range in size from a few dozen bytes to about
    60,000 bytes
  • Host transparently handles the splitting of data
    into packets on the sending end of a connection,
    and the reassembly of packets on the receiving
    end.

23
Sockets
  • Socket represents a reliable connection for
    transmission of data between two hosts.
  • Isolates programmer from details of packet
    encodings, lost and retransmitted packets, and
    packets that arrive out of order.

24
Sockets
  • Four fundamental operations a socket performs.
  • 1. Connect to a remote machine
  • 2. Send data
  • 3. Receive data
  • 4. Close the connection
  • A socket may not be connected to more than one
    host at a time.
  • Specify the remote host and port to connect to
  • Host may be specified as either a string like
    www.nord.is" or as an InetAddress object.
  • The port should be an int between 1 and 65535.

25
Sockets
  • Socket() constructors do not just create a Socket
    object.
  • Also attempt to connect the underlying socket to
    the remote server.
  • All the constructors throw an IOException if the
    connection can't be made for any reason.

26
Sockets
  • Java programmer is presented with a higher level
    abstraction called a socket.
  • Socket classes are used to represent the
    connection between a client program and a server
    program.
  • The java.net package provides two classes--Socket
    and ServerSocket--that implement the client side
    of the connection and the server side of the
    connection, respectively.

27
java.net.Socket class
  • Can connect to remote machines you can send
    data you can receive data you can close the
    connection.
  • Connection is accomplished through the
    constructors. Each Socket object is associated
    with exactly one remote host. To connect to a
    different host, you must create a new Socket
    object.

28
java.net.Socket classConstructors
  • public Socket(String host, int port) throws
    UnknownHostException, IOException
  • Socket webSunsite new Socket(wpi.wpi.edu"
    , 80)
  • public Socket(InetAddress address, int port)
    throws IOException
  • public Socket(String host, int port, InetAddress
    localAddress, int localPort) throws IOException
  • Socket metalab new Socket("metalab.unc.edu",
    80, "calzone.oit.unc.edu", 0)
  • public Socket(InetAddress address, int port,
    InetAddress localAddress, int localPort) throws
    IOException
  • Last two constructors also specify the host and
    port you're connecting from

29
java.net.Socket class
  • Show PortScanner.java

30
java.net.Socket classReading Input from a
Socket
  • Once a socket has connected
  • Send data to the server via an output stream.
  • Receive data from the server via an input stream.
  • Exactly what data you send and receive often
    depends on the protocol.

31
java.net.Socket classReading Input from a
Socket getInputStream()
  • getInputStream() method
  • returns an InputStream which reads data from the
    socket. You can use all the normal methods of the
    InputStream class to read this data.

32
java.net.Socket classWriting Output to a
Socket getOutputStream()
33
java.net.Socket classReading and Writing to a
Socket
  • Some protocols require the reads and the writes
    to be interlaced.
  • write read write read write read
  • Other protocols, such as HTTP 1.0, have multiple
    writes, followed by multiple reads
  • write write write read read read read
  • Other protocols don't care and allow client
    requests and server responses to be freely
    intermixed.
  • Java places no restrictions on reading and
    writing to sockets. One thread can read from a
    socket while another thread writes to the socket
    at the same time.
Write a Comment
User Comments (0)
About PowerShow.com