Sunteți pe pagina 1din 10

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

S-ar putea să vă placă și