| Communicating with Other Programs

## Working with a Server-Side Application

> Applets, like other Java programs, can use the API defined in the `java.net` package to communicate across the network. The only difference is that, for security reasons, the only host an applet can communicate with is the host it was delivered from.

> Note: Depending on the networking environment an applet is loaded into, and depending on the browser that runs the applet, an applet might not be able to communicate with its originating host. For example, browsers running on hosts inside firewalls often cannot get much information about the world outside the firewall. As a result, some browsers might not allow applet communication to hosts outside the firewall.

> It's easy to find out which host an applet came from. Just use the `Applet` `getCodeBase` method and the `java.net.URL` `getHost` method, like this:

> >     String host = getCodeBase().getHost();

> Once you have the right host name, you can use all the networking code that is documented in the Custom Networking and Security trail.

> Note: Not all browsers support all networking code flawlessly. For example, one widely used Java-compatible browser doesn't support posting to a URL.

> #### A Simple Network Client Applet

> > Here's an example of implementing an applet that's a network client.

> #### Using a Server to Work Around Security Restrictions

> > Here's an example of implementing a server to get around applet security restrictions.

| Communicating with Other Programs