Networking with Java

Download Report

Transcript Networking with Java

Networking with Java
Socket programming
The Interweb thing Al Gore
invented…



Internet is a network of networks.
The Internet is really people communicating.
Application layers 7, 6 :






email, HTTP, FTP, Telnet, file 'sharing', streaming
media, VoIP
remote access: VPN
Session layer 5: connections. e.g. sockets
Transport layer 4: TCP, UDP
Network layer 3: IP, the Internet
Link layer 2, 1: NICs, device drivers, magic.
Internet traffic

10% YouTube HTTP
36% other HTTP
37% P2P
17% newsgroups, streaming, gaming, VoIP

In other words, mostly a waste of bits.



Internet…what's it good for?

For years there has been a theory that
millions of monkeys typing at random on
millions of typewriters would reproduce the
entire works of Shakespeare…
The Internet has proven this theory to be
untrue. - Anonymous
Socket Programming
If a packet hits a pocket on a socket on a port,
and the bus is interrupted as a very last resort,
and the address of the memory makes your
floppy disk abort,
then the socket packet pocket has an error to
report!
from A Grandchild's Guide to Using Grandpa's
Computer by Gene Ziegler
Sockets programming







a client exchanging data with a server
An Internet socket is composed of the
following:
Protocol (TCP, UDP, raw IP)
Local IP address
(your computer)
Local port
(your application)
Remote IP address
(another computer)
Remote port
(another application)
Server Sockets in Java




package java.net
ServerSocket server =
new ServerSocket(PORT);
// waits for network requests.
Socket socket = server.accept();
// waits for a connection and returns a socket
use java.io to exchange data


InputStream from socket (client)
OutputStream to socket (client)
Client Sockets in Java



package java.net
Socket socket = new Socket ( host, port);
// waits for a connection to host on a port and
returns a socket
use java.io to exchange data



InputStream from socket (server)
OutputStream to socket (server)
see PortScanner.java
URL and IP addresses

URL class represents a
Uniform Resource Locator, a pointer to a
"resource" on the World Wide Web.


see ReadURL.java
InetAddress class represents an
Internet Protocol (IP) address.


used to find out who the socket is talking to.
ServerSocket or Socket can .getInetAddress();
Sockets Programming
see
 EchoServer.java & EchoClient.java


simple two-way communication
EchoServerThread.java & EchoClient.java

multi-threaded server to handle many sets of
two-way communication