Java Cookbook, Second Edition

Problem

You need to contact a server using TCP/IP.

Solution

Just create a Socket, passing the hostname and port number into the constructor.

Discussion

There isn't much to this in Java, in fact. When creating a socket, you pass in the hostname and the port number. The java.net.Socket constructor does the gethostbyname( ) and the socket( ) system call, sets up the server's sockaddr_in structure, and executes the connect( ) call. All you have to do is catch the errors, which are subclassed from the familiar IOException . Example 16-2 sets up a Java network client, using IOException to catch errors.

Example 16-2. Connect.java (simple client connection)

import java.net.*; /* * A simple demonstration of setting up a Java network client. */ public class Connect { public static void main(String[] argv) { String server_name = "localhost"; try { Socket sock = new Socket(server_name, 80); /* Finally, we can read and write on the socket. */ System.out.println(" *** Connected to " + server_name + " ***"); /* . do the I/O here .. */ sock.close( ); } catch (java.io.IOException e) { System.err.println("error connecting to " + server_name + ": " + e); return; } } }

See Also

Java supports other ways of using network applications. You can also open a URL and read from it (see Recipe 18.7). You can write code so that it will run from a URL, when opened in a web browser, or from an application.

Категории