Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
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! There's More!
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
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
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.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.4. Some Useful Programs
6.4.1. HostLookup
6.4.2. Processing Web Server Log Files
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.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.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
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.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.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
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.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.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.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.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
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.3. Two Simple Examples
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.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.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.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
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.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
← Prev
Back
Next →
← Prev
Back
Next →