When developing Java network applications in a stable and controlled
environment, it's easy to become complacent and ignore the possibility of
network timeouts. After all, with the perfect client and server running over
a local area network, timeouts won't occur to stall your application. But
when your users run clients or servers over the Internet (an environment
where networks can go down, badly written software can stall or communication
sessions can deviate from the ideal path of a communications protocol),
timeouts can cause problems if there isn't a mechanism to recognize and deal
with it.
In this article, I'll present two approaches to dealing with network
timeouts. The first approach, writing a multi-threaded application, is
backwards compatible with JDK1.02, at the expense of increased complexity.
The second approach is by far the easiest. In most cases it... (more)
Software developers invest a great deal of time, effort and money to bring a
product to market. Whether it's a complete Java application, an applet for a
Web site or a JavaBean component that performs some cool new function, you as
a developer have a right to protect the inner workings of your Java classes
from prying eyes. After all, you don't want someone looking at your
super-secret algorithm or trying to analyze your classes to find potential
security holes. Many developers feel confident that when they compile Java
source code to bytecode, their classes will be safe. After a... (more)