Java Network Programming. 3rd Edition - Helion
ISBN: 978-05-965-5258-9
stron: 764, Format: ebook
Data wydania: 2004-10-26
Księgarnia: Helion
Cena książki: 118,15 zł (poprzednio: 137,38 zł)
Oszczędzasz: 14% (-19,23 zł)
The new third edition of this highly regarded introduction to Java networking programming has been thoroughly revised to cover all of the 100+ significant updates to Java Developers Kit (JDK) 1.5. It is a clear, complete introduction to developing network programs (both applets and applications) using Java, covering everything from networking fundamentals to remote method invocation (RMI).Java Network Programming, 3rd Edition includes chapters on TCP and UDP sockets, multicasting protocol and content handlers, servlets, multithreaded network programming, I/O, HTML parsing and display, the Java Mail API, and the Java Secure Sockets Extension. There's also significant information on the New I/O API that was developed in large part because of the needs of network programmers.This invaluable book is a complete, single source guide to writing sophisticated network applications. Packed with useful examples, it is the essential resource for any serious Java developer.
Osoby które kupowały "Java Network Programming. 3rd Edition", wybierały także:
- Metoda dziel i zwyci 89,00 zł, (26,70 zł -70%)
- Język C. Kurs video. Praktyczne wprowadzenie do programowania 99,00 zł, (29,70 zł -70%)
- Wprowadzenie do Javy. Programowanie i struktury danych. Wydanie XII 193,23 zł, (59,90 zł -69%)
- Spring i Spring Boot. Kurs video. Testowanie aplikacji i bezpiecze 125,42 zł, (45,15 zł -64%)
- Maven. Kurs video. Automatyzacja tworzenia aplikacji w Javie 98,98 zł, (39,59 zł -60%)
Spis treści
Java Network Programming. 3rd Edition eBook -- spis treści
- Java Network Programming, 3rd Edition
- A Note Regarding Supplemental Files
- Preface
- About the Third Edition
- Organization of the Book
- Who You Are
- Java Versions
- About the Examples
- Conventions Used in This Book
- Request for Comments
- Comments and Questions
- Acknowledgments
- 1. Why Networked Java?
- 1.1. What Can a Network Program Do?
- 1.1.1. Retrieve Data
- 1.1.2. Send Data
- 1.1.2.1. File storage
- 1.1.2.2. Massively parallel computing
- 1.1.3. Peer-to-Peer Interaction
- 1.1.3.1. Games
- 1.1.3.2. Chat
- 1.1.3.3. File sharing
- 1.1.4. Servers
- 1.1.5. Searching the Web
- 1.1.6. Electronic Commerce
- 1.1.7. Ubiquitous Computing
- 1.1.8. Interactive Television
- 1.2. Security
- 1.3. But Wait! Theres More!
- 1.1. What Can a Network Program Do?
- 2. Basic Network Concepts
- 2.1. Networks
- 2.2. The Layers of a Network
- 2.2.1. The Host-to-Network Layer
- 2.2.2. The Internet Layer
- 2.2.3. The Transport Layer
- 2.2.4. The Application Layer
- 2.3. IP, TCP, and UDP
- 2.3.1. IP Addresses and Domain Names
- 2.3.2. Ports
- 2.4. The Internet
- 2.4.1. Internet Address Classes
- 2.4.2. Network Address Translation
- 2.4.3. Firewalls
- 2.4.4. Proxy Servers
- 2.5. The Client/Server Model
- 2.6. Internet Standards
- 2.6.1. IETF RFCs
- 2.6.2. W3C Recommendations
- 3. Basic Web Concepts
- 3.1. URIs
- 3.1.1. URNs
- 3.1.2. URLs
- 3.1.3. Relative URLs
- 3.2. HTML, SGML, and XML
- 3.3. HTTP
- 3.4. MIME Media Types
- 3.5. Server-Side Programs
- 3.1. URIs
- 4. Streams
- 4.1. Output Streams
- 4.2. Input Streams
- 4.2.1. Marking and Resetting
- 4.3. Filter Streams
- 4.3.1. Chaining Filters Together
- 4.3.2. Buffered Streams
- 4.3.3. PrintStream
- 4.3.4. PushbackInputStream
- 4.3.5. Data Streams
- 4.3.6. Compressing Streams
- 4.3.7. Digest Streams
- 4.3.8. Encrypting Streams
- 4.4. Readers and Writers
- 4.4.1. Writers
- 4.4.2. OutputStreamWriter
- 4.4.3. Readers
- 4.4.4. Filter Readers and Writers
- 4.4.4.1. Buffered readers and writers
- 4.4.4.2. LineNumberReader
- 4.4.4.3. PushbackReader
- 4.4.4.4. PrintWriter
- 5. Threads
- 5.1. Running Threads
- 5.1.1. Subclassing Thread
- 5.1.2. Implementing the Runnable Interface
- 5.2. Returning Information from a Thread
- 5.2.1. Race Conditions
- 5.2.2. Polling
- 5.2.3. Callbacks
- 5.3. Synchronization
- 5.3.1. Synchronized Blocks
- 5.3.2. Synchronized Methods
- 5.3.3. Alternatives to Synchronization
- 5.4. Deadlock
- 5.5. Thread Scheduling
- 5.5.1. Priorities
- 5.5.2. Preemption
- 5.5.2.1. Blocking
- 5.5.2.2. Yielding
- 5.5.2.3. Sleeping
- 5.5.2.4. Joining threads
- 5.5.2.5. Waiting on an object
- 5.5.2.6. Priority-based preemption
- 5.5.2.7. Finish
- 5.6. Thread Pools
- 5.1. Running Threads
- 6. Looking Up Internet Addresses
- 6.1. The InetAddress Class
- 6.1.1. Creating New InetAddress Objects
- 6.1.1.1. public static InetAddress getByName(String hostName) throws UnknownHostException
- 6.1.1.2. public static InetAddress[ ] getAllByName(String hostName) throws UnknownHostException
- 6.1.1.3. public static InetAddress getByAddress(byte[ ] address) throws UnknownHostException // Java 1.4public static InetAddress getByAddress(String hostName, byte[] address) throws UnknownHostException // Java 1.4
- 6.1.1.4. public static InetAddress getLocalHost( ) throws UnknownHostException
- 6.1.2. Security Issues
- 6.1.3. Getter Methods
- 6.1.3.1. public String getHostName( )
- 6.1.3.2. public String getHostAddress( )
- 6.1.3.3. public byte[] getAddress( )
- 6.1.4. Address Types
- 6.1.4.1. public boolean isAnyLocalAddress( )
- 6.1.4.2. public boolean isLoopbackAddress( )
- 6.1.4.3. public boolean isLinkLocalAddress( )
- 6.1.4.4. public boolean isSiteLocalAddress( )
- 6.1.4.5. public boolean isMulticastAddress( )
- 6.1.4.6. public boolean isMCGlobal( )
- 6.1.4.7. public boolean isMCOrgLocal( )
- 6.1.4.8. public boolean isMCSiteLocal( )
- 6.1.4.9. public boolean isMCLinkLocal( )
- 6.1.4.10. public boolean isMCNodeLocal( )
- 6.1.5. Testing Reachability // Java 1.5
- 6.1.6. Object Methods
- 6.1.6.1. public boolean equals(Object o)
- 6.1.6.2. public int hashCode( )
- 6.1.6.3. public String toString( )
- 6.1.1. Creating New InetAddress Objects
- 6.2. Inet4Address and Inet6Address
- 6.3. The NetworkInterface Class
- 6.3.1. Factory Methods
- 6.3.1.1. public static NetworkInterface getByName(String name) throws SocketException
- 6.3.1.2. public static NetworkInterface getByInetAddress(InetAddress address) throws SocketException
- 6.3.1.3. public static Enumeration getNetworkInterfaces( ) throws SocketException
- 6.3.2. Getter Methods
- 6.3.2.1. public Enumeration getInetAddresses( )
- 6.3.2.2. public String getName( )
- 6.3.2.3. public String getDisplayName( )
- 6.3.3. Object Methods
- 6.3.1. Factory Methods
- 6.4. Some Useful Programs
- 6.4.1. HostLookup
- 6.4.2. Processing Web Server Log Files
- 6.1. The InetAddress Class
- 7. URLs and URIs
- 7.1. The URL Class
- 7.1.1. Creating New URLs
- 7.1.1.1. Constructing a URL from a string
- 7.1.1.2. Constructing a URL from its component parts
- 7.1.1.3. Constructing relative URLs
- 7.1.1.4. Specifying a URLStreamHandler // Java 1.2
- 7.1.1.5. Other sources of URL objects
- 7.1.2. Splitting a URL into Pieces
- 7.1.2.1. public String getProtocol( )
- 7.1.2.2. public String getHost( )
- 7.1.2.3. public int getPort( )
- 7.1.2.4. public int getDefaultPort( )
- 7.1.2.5. public String getFile( )
- 7.1.2.6. public String getPath( ) // Java 1.3
- 7.1.2.7. public String getRef( )
- 7.1.2.8. public String getQuery( ) // Java 1.3
- 7.1.2.9. public String getUserInfo( ) // Java 1.3
- 7.1.2.10. public String getAuthority( ) // Java 1.3
- 7.1.3. Retrieving Data from a URL
- 7.1.3.1. public final InputStream openStream( ) throws IOException
- 7.1.3.2. public URLConnection openConnection( ) throws IOException
- 7.1.3.3. public final Object getContent( ) throws IOException
- 7.1.3.4. public final Object getContent(Class[] classes) throws IOException // Java 1.3
- 7.1.4. Utility Methods
- 7.1.4.1. public boolean sameFile(URL other)
- 7.1.4.2. public String toExternalForm( )
- 7.1.4.3. public URI toURI( ) throws URISyntaxException // Java 1.5
- 7.1.5. The Object Methods
- 7.1.5.1. public String toString( )
- 7.1.5.2. public boolean equals(Object o)
- 7.1.5.3. public int hashCode( )
- 7.1.6. Methods for Protocol Handlers
- 7.1.6.1. public static synchronized void setURLStreamHandlerFactory(URLStreamHandlerFactory factory)
- 7.1.1. Creating New URLs
- 7.2. The URLEncoder and URLDecoder Classes
- 7.2.1. URLEncoder
- 7.2.2. URLDecoder
- 7.3. The URI Class
- 7.3.1. Constructing a URI
- 7.3.1.1. public URI(String uri) throws URISyntaxException
- 7.3.1.2. public URI(String scheme, String schemeSpecificPart, String fragment) throws URISyntaxException
- 7.3.1.3. public URI(String scheme, String host, String path, String fragment) throws URISyntaxException
- 7.3.1.4. public URI(String scheme, String authority, String path, String query, String fragment) throws URISyntaxException
- 7.3.1.5. public URI(String scheme, String userInfo, String host, int port, String path, String query, String fragment) throws URISyntaxException
- 7.3.1.6. public static URI create(String uri)
- 7.3.2. The Parts of the URI
- 7.3.3. Resolving Relative URIs
- 7.3.3.1. public URI resolve(URI uri)
- 7.3.3.2. public URI resolve(String uri)
- 7.3.3.3. public URI relativize(URI uri)
- 7.3.4. Utility Methods
- 7.3.4.1. public boolean equals(Object o)
- 7.3.4.2. public int hashCode( )
- 7.3.4.3. public int compareTo(Object o)
- 7.3.4.4. public String toString( )
- 7.3.4.5. public String toASCIIString( )
- 7.3.1. Constructing a URI
- 7.4. Proxies
- 7.4.1. System Properties
- 7.4.2. The Proxy Class
- 7.4.3. The ProxySelector Class
- 7.5. Communicating with Server-Side Programs Through GET
- 7.6. Accessing Password-Protected Sites
- 7.6.1. The Authenticator Class
- 7.6.2. The PasswordAuthentication Class
- 7.6.3. The JPasswordField Class
- 7.1. The URL Class
- 8. HTML in Swing
- 8.1. HTML on Components
- 8.2. JEditorPane
- 8.2.1. Constructing HTML User Interfaces on the Fly
- 8.2.2. Handling Hyperlinks
- 8.2.3. Reading HTML Directly
- 8.3. Parsing HTML
- 8.3.1. HTMLEditorKit.Parser
- 8.3.2. HTMLEditorKit.ParserCallback
- 8.3.3. HTML.Tag
- 8.3.4. Attributes
- 8.4. Cookies
- 9. Sockets for Clients
- 9.1. Socket Basics
- 9.2. Investigating Protocols with Telnet
- 9.3. The Socket Class
- 9.3.1. The Constructors
- 9.3.1.1. public Socket(String host, int port) throws UnknownHostException, IOException
- 9.3.1.2. public Socket(InetAddress host, int port) throws IOException
- 9.3.1.3. public Socket(String host, int port, InetAddress interface, int localPort) throws IOException, UnknownHostException
- 9.3.1.4. public Socket(InetAddress host, int port, InetAddress interface, int localPort) throws IOException
- 9.3.1.5. protected Socket( )
- 9.3.1.6. protected Socket(SocketImpl impl)
- 9.3.1.7. public Socket(Proxy proxy) // Java 1.5
- 9.3.2. Getting Information About a Socket
- 9.3.2.1. public InetAddress getInetAddress( )
- 9.3.2.2. public int getPort( )
- 9.3.2.3. public int getLocalPort( )
- 9.3.2.4. public InetAddress getLocalAddress( )
- 9.3.2.5. public InputStream getInputStream( ) throws IOException
- 9.3.2.6. public OutputStream getOutputStream( ) throws IOException
- 9.3.3. Closing the Socket
- 9.3.3.1. public void close( ) throws IOException
- 9.3.3.2. Half-closed sockets // Java 1.3
- 9.3.4. Setting Socket Options
- 9.3.4.1. TCP_NODELAY
- 9.3.4.2. SO_LINGER
- 9.3.4.3. SO_TIMEOUT
- 9.3.4.4. SO_RCVBUF
- 9.3.4.5. SO_SNDBUF
- 9.3.4.6. SO_KEEPALIVE
- 9.3.4.7. OOBINLINE // Java 1.4
- 9.3.4.8. SO_REUSEADDR // Java 1.4
- 9.3.5. Class of Service
- 9.3.6. The Object Methods
- 9.3.6.1. public String toString( )
- 9.3.1. The Constructors
- 9.4. Socket Exceptions
- 9.5. Socket Addresses
- 9.6. Examples
- 9.6.1. Finger
- 9.6.2. Whois
- 10. Sockets for Servers
- 10.1. The ServerSocket Class
- 10.1.1. The Constructors
- 10.1.1.1. public ServerSocket(int port) throws BindException, IOException
- 10.1.1.2. public ServerSocket(int port, int queueLength) throws IOException, BindException
- 10.1.1.3. public ServerSocket(int port, int queueLength, InetAddress bindAddress) throws BindException, IOException
- 10.1.1.4. public ServerSocket( ) throws IOException // Java 1.4
- 10.1.2. Accepting and Closing Connections
- 10.1.2.1. public Socket accept( ) throws IOException
- 10.1.2.2. public void close( ) throws IOException
- 10.1.3. The get Methods
- 10.1.3.1. public InetAddress getInetAddress( )
- 10.1.3.2. public int getLocalPort( )
- 10.1.4. Socket Options
- 10.1.4.1. SO_TIMEOUT
- 10.1.4.2. SO_REUSEADDR // Java 1.4
- 10.1.4.3. SO_RCVBUF // Java 1.4
- 10.1.4.4. public void setPerformancePreferences(int connectionTime, int latency, int bandwidth) // Java 1.5
- 10.1.5. The Object Methods
- 10.1.5.1. public String toString( )
- 10.1.6. Implementation
- 10.1.6.1. public static void setSocketFactory(SocketImplFactory factory) throws IOException
- 10.1.6.2. protected final void implAccept(Socket s) throws IOException
- 10.1.1. The Constructors
- 10.2. Some Useful Servers
- 10.2.1. Client Tester
- 10.2.2. HTTP Servers
- 10.2.2.1. A single-file server
- 10.2.2.2. A redirector
- 10.2.2.3. A full-fledged HTTP server
- 10.1. The ServerSocket Class
- 11. Secure Sockets
- 11.1. Secure Communications
- 11.2. Creating Secure Client Sockets
- 11.3. Methods of the SSLSocket Class
- 11.3.1. Choosing the Cipher Suites
- 11.3.2. Event Handlers
- 11.3.3. Session Management
- 11.3.4. Client Mode
- 11.4. Creating Secure Server Sockets
- 11.5. Methods of the SSLServerSocket Class
- 11.5.1. Choosing the Cipher Suites
- 11.5.2. Session Management
- 11.5.3. Client Mode
- 12. Non-Blocking I/O
- 12.1. An Example Client
- 12.2. An Example Server
- 12.3. Buffers
- 12.3.1. Creating Buffers
- 12.3.1.1. Allocation
- 12.3.1.2. Direct allocation
- 12.3.1.3. Wrapping
- 12.3.2. Filling and Draining
- 12.3.3. Bulk Methods
- 12.3.4. Data Conversion
- 12.3.5. View Buffers
- 12.3.6. Compacting Buffers
- 12.3.7. Duplicating Buffers
- 12.3.8. Slicing Buffers
- 12.3.9. Marking and Resetting
- 12.3.10. Object Methods
- 12.3.1. Creating Buffers
- 12.4. Channels
- 12.4.1. SocketChannel
- 12.4.1.1. Connecting
- 12.4.1.2. Reading
- 12.4.1.3. Writing
- 12.4.1.4. Closing
- 12.4.2. ServerSocketChannel
- 12.4.2.1. Creating server socket channels
- 12.4.2.2. Accepting connections
- 12.4.3. The Channels Class
- 12.4.1. SocketChannel
- 12.5. Readiness Selection
- 12.5.1. The Selector Class
- 12.5.2. The SelectionKey Class
- 13. UDP Datagrams and Sockets
- 13.1. The UDP Protocol
- 13.2. The DatagramPacket Class
- 13.2.1. The Constructors
- 13.2.1.1. Constructors for receiving datagrams
- 13.2.1.2. Constructors for sending datagrams
- 13.2.2. The get Methods
- 13.2.2.1. public InetAddress getAddress( )
- 13.2.2.2. public int getPort( )
- 13.2.2.3. public SocketAddress getSocketAddress( ) // Java 1.4
- 13.2.2.4. public byte[] getData( )
- 13.2.2.5. public int getLength( )
- 13.2.2.6. public int getOffset( ) // Java 1.2
- 13.2.3. The set Methods
- 13.2.3.1. public void setData(byte[] data)
- 13.2.3.2. public void setData(byte[] data, int offset, int length) // Java 1.2
- 13.2.3.3. public void setAddress(InetAddress remote)
- 13.2.3.4. public void setPort(int port)
- 13.2.3.5. public void setAddress(SocketAddress remote) // Java 1.4
- 13.2.3.6. public void setLength(int length)
- 13.2.1. The Constructors
- 13.3. The DatagramSocket Class
- 13.3.1. The Constructors
- 13.3.1.1. public DatagramSocket( ) throws SocketException
- 13.3.1.2. public DatagramSocket(int port) throws SocketException
- 13.3.1.3. public DatagramSocket(int port, InetAddress interface) throws SocketException
- 13.3.1.4. public DatagramSocket(SocketAddress interface) throws SocketException // Java 1.4
- 13.3.1.5. protected DatagramSocket(DatagramSocketImpl impl) throws SocketException // Java 1.4
- 13.3.2. Sending and Receiving Datagrams
- 13.3.2.1. public void send(DatagramPacket dp) throws IOException
- 13.3.2.2. public void receive(DatagramPacket dp) throws IOException
- 13.3.2.3. public void close( )
- 13.3.2.4. public int getLocalPort( )
- 13.3.2.5. public InetAddress getLocalAddress( )
- 13.3.2.6. public SocketAddress getLocalSocketAddress( ) // Java 1.4
- 13.3.3. Managing Connections
- 13.3.3.1. public void connect(InetAddress host, int port) // Java 1.2
- 13.3.3.2. public void disconnect( ) // Java 1.2
- 13.3.3.3. public int getPort( ) // Java 1.2
- 13.3.3.4. public InetAddress getInetAddress( ) // Java 1.2
- 13.3.3.5. public InetAddress getRemoteSocketAddress( ) // Java 1.4
- 13.3.4. Socket Options
- 13.3.4.1. SO_TIMEOUT
- 13.3.4.2. SO_RCVBUF
- 13.3.4.3. SO_SNDBUF
- 13.3.4.4. SO_REUSEADDR
- 13.3.4.5. SO_BROADCAST
- 13.3.4.6. Traffic class
- 13.3.1. The Constructors
- 13.4. Some Useful Applications
- 13.4.1. Simple UDP Clients
- 13.4.2. UDPServer
- 13.4.3. A UDP Echo Client
- 13.5. DatagramChannel
- 13.5.1. Using DatagramChannel
- 13.5.1.1. Opening a socket
- 13.5.1.2. Connecting
- 13.5.1.3. Receiving
- 13.5.1.4. Sending
- 13.5.1.5. Reading
- 13.5.1.6. Writing
- 13.5.1.7. Closing
- 13.5.1. Using DatagramChannel
- 14. Multicast Sockets
- 14.1. What Is a Multicast Socket?
- 14.1.1. Multicast Addresses and Groups
- 14.1.2. Clients and Servers
- 14.1.3. Routers and Routing
- 14.2. Working with Multicast Sockets
- 14.2.1. The Constructors
- 14.2.1.1. public MulticastSocket( ) throws SocketException
- 14.2.1.2. public MulticastSocket(int port) throws SocketException
- 14.2.1.3. public MulticastSocket(SocketAddress bindAddress) throws IOException // Java 1.4
- 14.2.2. Communicating with a Multicast Group
- 14.2.2.1. public void joinGroup(InetAddress address) throws IOException
- 14.2.2.2. public void joinGroup(SocketAddress address, NetworkInterface interface) throws IOException // Java 1.4
- 14.2.2.3. public void leaveGroup(InetAddress address) throws IOException
- 14.2.2.4. public void leaveGroup(SocketAddress multicastAddress, NetworkInterface interface) throws IOException // Java 1.4
- 14.2.2.5. public void send(DatagramPacket packet, byte ttl) throws IOException
- 14.2.2.6. public void setInterface(InetAddress address) throws SocketException
- 14.2.2.7. public InetAddress getInterface( ) throws SocketException
- 14.2.2.8. public void setNetworkInterface(NetworkInterface interface) throws SocketException // Java 1.4
- 14.2.2.9. public NetworkInterface getNetworkInterface( ) throws SocketException // Java 1.4
- 14.2.2.10. public void setTimeToLive(int ttl) throws IOException // Java 1.2
- 14.2.2.11. public int getTimeToLive( ) throws IOException // Java 1.2
- 14.2.2.12. public void setLoopbackMode(boolean disable) throws SocketException // Java 1.4
- 14.2.2.13. public boolean getLoopbackMode( ) throws SocketException // Java 1.4
- 14.2.1. The Constructors
- 14.3. Two Simple Examples
- 14.1. What Is a Multicast Socket?
- 15. URLConnections
- 15.1. Opening URLConnections
- 15.2. Reading Data from a Server
- 15.3. Reading the Header
- 15.3.1. Retrieving Specific Header Fields
- 15.3.1.1. public String getContentType( )
- 15.3.1.2. public int getContentLength( )
- 15.3.1.3. public String getContentEncoding( )
- 15.3.1.4. public long getDate( )
- 15.3.1.5. public long getExpiration( )
- 15.3.1.6. public long getLastModified( )
- 15.3.2. Retrieving Arbitrary Header Fields
- 15.3.2.1. public String getHeaderField(String name)
- 15.3.2.2. public String getHeaderFieldKey(int n)
- 15.3.2.3. public String getHeaderField(int n)
- 15.3.2.4. public long getHeaderFieldDate(String name, long default)
- 15.3.2.5. public int getHeaderFieldInt(String name, int default)
- 15.3.1. Retrieving Specific Header Fields
- 15.4. Configuring the Connection
- 15.4.1. protected URL url
- 15.4.2. protected boolean connected
- 15.4.3. protected boolean allowUserInteraction
- 15.4.4. protected boolean doInput
- 15.4.5. protected boolean doOutput
- 15.4.6. protected boolean ifModifiedSince
- 15.4.7. protected boolean useCaches
- 15.4.8. Timeouts
- 15.5. Configuring the Client Request HTTP Header
- 15.6. Writing Data to a Server
- 15.7. Content Handlers
- 15.7.1. Getting Content
- 15.7.1.1. public Object getContent( ) throws IOException
- 15.7.1.2. public Object getContent(Class[] classes) throws IOException // Java 1.3
- 15.7.2. ContentHandlerFactory
- 15.7.1. Getting Content
- 15.8. The Object Methods
- 15.9. Security Considerations for URLConnections
- 15.10. Guessing MIME Content Types
- 15.11. HttpURLConnection
- 15.11.1. The Request Method
- 15.11.1.1. HEAD
- 15.11.1.2. OPTIONS
- 15.11.1.3. DELETE
- 15.11.1.4. PUT
- 15.11.1.5. TRACE
- 15.11.2. Disconnecting from the Server
- 15.11.3. Handling Server Responses
- 15.11.3.1. Error conditions
- 15.11.3.2. Redirects
- 15.11.4. Proxies
- 15.11.5. Streaming Mode
- 15.11.1. The Request Method
- 15.12. Caches
- 15.13. JarURLConnection
- 16. Protocol Handlers
- 16.1. What Is a Protocol Handler?
- 16.2. The URLStreamHandler Class
- 16.2.1. The Constructor
- 16.2.2. Methods for Parsing URLs
- 16.2.2.1. protected void parseURL(URL u, String spec, int start, int limit)
- 16.2.2.2. protected String toExternalForm(URL u)
- 16.2.2.3. protected void setURL(URL u, String protocol, String host, int port, String authority, String userInfo, String path, String query, String fragmentID) // Java 1.3
- 16.2.2.4. protected int getDefaultPort( ) // Java 1.3
- 16.2.2.5. protected InetAddress getHostAddress(URL u) // Java 1.3
- 16.2.2.6. protected boolean hostsEqual(URL u1, URL u2) // Java 1.3
- 16.2.2.7. protected boolean sameFile(URL u1, URL u2) // Java 1.3
- 16.2.2.8. protected boolean equals(URL u1, URL u2) // Java 1.3
- 16.2.2.9. protected int hashCode(URL u) // Java 1.3
- 16.2.3. A Method for Connecting
- 16.2.3.1. protected abstract URLConnection openConnection(URL u) throws IOException
- 16.2.3.2. protected URLConnection openConnection(URL u, Proxy p) throws IOException // Java 1.5
- 16.3. Writing a Protocol Handler
- 16.4. More Protocol Handler Examples and Techniques
- 16.4.1. A daytime Protocol Handler
- 16.4.2. A chargen Protocol Handler
- 16.5. The URLStreamHandlerFactory Interface
- 17. Content Handlers
- 17.1. What Is a Content Handler?
- 17.2. The ContentHandler Class
- 17.2.1. A Content Handler for Tab-Separated Values
- 17.2.2. Using Content Handlers
- 17.2.3. Choosing Return Types
- 17.3. The ContentHandlerFactory Interface
- 17.3.1. The createContentHandler( ) Method
- 17.3.2. Installing Content Handler Factories
- 17.4. A Content Handler for the FITS Image Format
- 18. Remote Method Invocation
- 18.1. What Is Remote Method Invocation?
- 18.1.1. Object Serialization
- 18.1.2. Under the Hood
- 18.2. Implementation
- 18.2.1. The Server Side
- 18.2.2. Compiling the Stubs
- 18.2.3. Starting the Server
- 18.2.4. The Client Side
- 18.2.5. Running the Client
- 18.3. Loading Classes at Runtime
- 18.4. The java.rmi Package
- 18.4.1. The Remote Interface
- 18.4.2. The Naming Class
- 18.4.2.1. public static String[] list(String url) throws RemoteException, MalformedURLException
- 18.4.2.2. public static Remote lookup(String url) throws RemoteException, NotBoundException, AccessException, MalformedURLException
- 18.4.2.3. public static void bind(String url, Remote object) throws RemoteException, AlreadyBoundException, MalformedURLException, AccessException
- 18.4.2.4. public static void unbind(String url) throws RemoteException, NotBoundException, AlreadyBoundException, MalformedURLException, AccessException // Java 1.2
- 18.4.2.5. public static void rebind(String url, Remote object) throws RemoteException, AccessException, MalformedURLException
- 18.4.3. The RMISecurityManager Class
- 18.4.4. Remote Exceptions
- 18.5. The java.rmi.registry Package
- 18.5.1. The Registry Interface
- 18.5.2. The LocateRegistry Class
- 18.6. The java.rmi.server Package
- 18.6.1. The RemoteObject Class
- 18.6.2. The RemoteServer Class
- 18.6.2.1. Constructors
- 18.6.2.2. Getting information about the client
- 18.6.2.3. Logging
- 18.6.3. The UnicastRemoteObject Class
- 18.6.4. Exceptions
- 18.1. What Is Remote Method Invocation?
- 19. The JavaMail API
- 19.1. What Is the JavaMail API?
- 19.2. Sending Email
- 19.2.1. Sending Email from an Application
- 19.2.2. Sending Email from an Applet
- 19.3. Receiving Mail
- 19.4. Password Authentication
- 19.5. Addresses
- 19.5.1. The Address Class
- 19.5.2. The InternetAddress Class
- 19.5.3. The NewsAddress Class
- 19.6. The URLName Class
- 19.6.1. The Constructors
- 19.6.2. Parsing Methods
- 19.7. The Message Class
- 19.7.1. Creating Messages
- 19.7.1.1. Replying to messages
- 19.7.1.2. Getting messages from folders
- 19.7.2. Basic Header Info
- 19.7.2.1. The From address
- 19.7.2.2. The Reply-to address
- 19.7.2.3. The recipient addresses
- 19.7.2.4. The subject of the message
- 19.7.2.5. The date of the message
- 19.7.2.6. Saving changes
- 19.7.3. Flags
- 19.7.4. Folders
- 19.7.5. Searching
- 19.7.1. Creating Messages
- 19.8. The Part Interface
- 19.8.1. Attributes
- 19.8.2. Headers
- 19.8.3. Content
- 19.8.3.1. Reading the contents of the part
- 19.8.3.2. Writing the contents of the part
- 19.9. Multipart Messages and File Attachments
- 19.10. MIME Messages
- 19.11. Folders
- 19.11.1. Opening Folders
- 19.11.2. Basic Folder Info
- 19.11.3. Managing Folders
- 19.11.4. Managing Messages in Folders
- 19.11.5. Subscriptions
- 19.11.6. Listing the Contents of a Folder
- 19.11.7. Checking for Mail
- 19.11.8. Getting Messages from Folders
- 19.11.9. Searching Folders
- 19.11.10. Flags
- 19.11.11. Event Handling
- 19.11.12. Utility Methods
- Index
- About the Author
- Colophon
- Copyright