What Is a Socket?Networking can be defined as the process of making two or more computers communicate.The more important concept that is closely associated with that of networking is the conceptof Sockets and Ports.A SOCKET is a handle to a communications link with another application over the network.In other words, a socket is a software interface that connects an application to the network.Sockets are often used in client/server applications.The notion of a socket allows a single computer to serve many different clients at once. Thisis managed by the introduction of a port, which is a numbered socket on a particular machine.A server process can listen to a port only when a client connects to it. A port can be thoughtof as a logical entity identified as a number between 0 and 65535.A socket is one end-point of a two-way communication link between two programs runningon the network. Socket classes are used to represent the connection between a client programand a server program. The java.net package provides two classes--Socket and ServerSocket--that implement the client side of the connection and the server side of the connection,respectively.What Is a Socket?Normally, a server runs on a specific computer and has a socket that is bound to a specificport number. The server just waits, listening to the socket for a client to make a connectionrequest.On the client-side: The client knows the hostname of the machine on which the server isrunning and the port number on which the server is listening. To make a connection request,the client tries to rendezvous with the server on the servers machine and port. The client alsoneeds to identify itself to the server so it binds to a local port number that it will use duringthis connection. This is usually assigned by the system.If everything goes well, the server accepts the connection. Upon acceptance, the server gets anew socket bound to the same local port and also has its remote endpoint set to the addressand port of the client. It needs a new socket so that it can continue to listen to the originalsocket for connection requests while tending to the needs of the connected client.
On the client side, if the connection is accepted, a socket is successfully created and the clientcan use the socket to communicate with the server.The client and server can now communicate by writing to or reading from their sockets.An endpoint is a combination of an IP address and a port number. Every TCP connection canbe uniquely identified by its two endpoints. That way you can have multiple connectionsbetween your host and the server.The java.net package in the Java platform provides a class, Socket, that implements oneside of a two-way connection between your Java program and another program on thenetwork. The Socket class sits on top of a platform-dependent implementation, hiding thedetails of any particular system from your Java program. By using the java.net.Socketclass instead of relying on native code, your Java programs can communicate over thenetwork in a platform-independent fashion.Additionally, java.net includes the ServerSocket class, which implements a socket thatservers can use to listen for and accept connections to clients. This lesson shows you how touse the Socket and ServerSocket classes.If you are trying to connect to the Web, the URL class and related classes (URLConnection,URLEncoder) are probably more appropriate than the socket classes. In fact, URLs are arelatively high-level connection to the Web and use sockets as part of the underlyingimplementation. See Working with URLs for information about connecting to the Web viaURLs.InetAddress Class Methods:This class represents an Internet Protocol (IP) address. Here are following usefull methods which youwould need while doing socket programming:SN Methods with Description1 static InetAddress getByAddress(byte addr) Returns an InetAddress object given the raw IP address .2 static InetAddress getByAddress(String host, byte addr) Create an InetAddress based on the provided host name and IP address.3 static InetAddress getByName(String host) Determines the IP address of a host, given the hosts name.4 String getHostAddress() Returns the IP address string in textual presentation.5 String getHostName() Gets the host name for this IP address.6 static InetAddress InetAddress getLocalHost()
Returns the local host.7 String toString() Converts this IP address to a String.