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 : , 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! fromfrom 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:Internetsocket Protocol (TCP, UDP, raw IP) Protocol Local IP address (your computer)IP address Local port (your application)port Remote IP address (another computer) Remote port(another application)
Server Sockets in Java package java.netjava.net ServerSocket server = new ServerSocket(PORT); // waits for network requests. ServerSocket 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.netjava.net Socket socket = new Socket ( host, port); // waits for a connection to host on a port and returns a socket 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