Basic Protocols 26-Jul-16

advertisement
Basic Protocols
26-Jul-16
Sockets


Sockets, or ports, are a very low level software construct that
allows computers to talk to one another
When you send information from one computer to another, you
send it to a port on the receiving computer




If the computer is “listening” on that port, it receives the information
In order for the computer to “make sense” of the information, it must know
what protocol is being used
Common port numbers are 80 (for web pages), 23 (for telnet) and
25 and 110 (for mail)
Port numbers above 1024 are available for other kinds of
communication between our programs
2
Protocols





In order for computers to communicate with one
another, they must agree on a set of rules (a “language”)
for who says what, when they say it, and what format
they say it in
This set of rules is a protocol
Different programs can use different protocols
Protocols may be in ASCII (characters) or in binary
Some common protocols are HTTP (for web pages),
FTP (for file transfer), and SMTP (Simple Mail Transfer
Protocol)
3
TCP/IP


The Internet (and most other computer networks) are connected
through TCP/IP networks
TCP/IP is actually a combination of two protocols:

IP, Internet Protocol, is used to move packets (chunks) of data from one
place to another





Places are specified by IP addresses: four single-byte (0..255) numbers
separated by periods
Example: 192.168.1.1
TCP, Transmission Control Protocol, ensures that all necessary packets are
present, and puts them together in the correct order
TCP/IP forms a “wrapper” around data of any kind
The data uses its own protocol, for example, FTP
4
Hostnames and DNS servers




The “real” name of a computer on the internet is its
four-byte IP address
People, however, don’t like to remember numbers, so
we use hostnames instead
For example, the hostname www.cis.upenn.edu is
158.130.12.9
A DNS (Domain Name Server) is a computer that
translates hostnames into IP addresses



Think of it as like a phone book--names to useful numbers
Of course, you have to know the IP address of the DNS in
order to use it!
You usually get two DNS numbers from your Internet Service
Provider (ISP)
5
DHCP

If you have a web site, it must be hosted on a computer that is
“permanently” on the Web




If you have no permanent web site, you can be given a temporary
(dynamically allocated) IP address each time you connect to the
Web
Similarly, if you have a home or office network, only one
computer needs a permanent IP address



This computer must have a permanent IP address
There aren’t enough IP addresses for the number of computers there are
these days
The rest of the computers can be assigned internal, permanent IP addresses
(not known to the rest of the world)
They can also be assigned internal IP addresses dynamically
DHCP (Dynamic Host Configuration Protocol) is a way of
assigning temporary IP addresses as needed
6
URLs


A URL, Uniform Resource Locater, defines a location
on the Web
A URL has up to five parts:
http://www.xyz.com:80/ad/index.html#specials
Anchor -- a
location within
the page
Path to a given page
Hostname
Port -- 80 is default for http requests
Protocol -- http is used for Web pages
7
ShowURL.java
import java.net.*; // Gittleman, Example 2.2, pp. 67-68
import java.applet.Applet;
public class ShowURL extends Applet {
public void init() {
try {
URL url = new URL(getParameter("url"));
getAppletContext().showDocument(url);
}
catch(MalformedURLException e) {
e.printStackTrace();
}
}
}
8
About the ShowURL.java applet

import java.net.*;


URL url = new URL(getParameter("url"));


An AppletContext describes the document containing this applet and the
other applets in the same document
showDocument(url)


Constructs a URL object from a text string
getAppletContext()


This is the package that defines sockets, URLs, etc.
Replaces the Web page currently being viewed with the given URL
catch(MalformedURLException e)

This exception is thrown if the given String cannot be parsed by
newURL(String)
9
Running the applet from Eclipse
1. Choose Run --> Run... from the menus
2. In the left pane, click on ShowURL under Java applet
3. Click on the Parameters tab, then Add... or Edit...
parameters (in this case, give the url parameter some
appropriate URL)
4. Run the applet in the usual way
10
Applet results

If the applet is run using appletviewer, you get an
applet, but it’s blank


Unless, that is, the page you go to has a applet on it
If the applet is run using a browser,



First, a web page appears, with a gray rectangle for the applet
(which is just starting up)
Then the initial web page is replaced by the web page
specified by the URL
You are now in your regular browser, just as if you had typed
the URL into it
11
TryURL.java, I



ShowURL.java is an applet; it runs in a browser, gets
a web page, and displays it in that browser
TryURL.java is an application; it runs standalone,
gets a web page, and displays the HTML that it got
Basic structure:

import java.net.*;
import java.io.*;
public class TryURL {
public static void main(String[] args) {
try { ...important code goes here....
} catch (Exception e) { ... }
}
}
12
TryURL.java, II


BufferedReader input;
String line;
URL url = new URL(
"http://www.cis.upenn.edu/~matuszek/cit597-2008");
input = new BufferedReader(
new InputStreamReader(url.openStream()));
line = input.readLine();
while (line != null) {
System.out.println(line);
line = input.readLine();
}
input.close();
13
TryURL.java, III


TryURL just writes out the “raw” HTML that it
receives
A more complex program could use
javax.swing.JEditorPane, which can display a subset
of HTML

JEditorPane can also display RTF (Rich Text Format)
14
The End
15
Download