On October 23rd, 2014, we updated our
By continuing to use LinkedIn’s SlideShare service, you agree to the revised terms, so please take a few minutes to review them.
Socket programming in Java (PPTX)Presentation Transcript
Socket programming in java NarendranThangarajan, @naren_live, II Year, BE, CSE, SSN College of Engg, Chennai.
What started it all.. Internet has emerged as a global ubiquitous media for communication It has changed the way we live, learn, enjoy, communicate, interact, engage, etc. To take advantage of this, businesses are ceaselessly trying to offer their services through the internet. So a huge demand for software developers good in creating internet-enabled applications.
Client Server Applications The Web Service is provided by the server and the clients use these services Client Request Server Network Result Client machine Server machine A client, A server, and network This is where sockets come in !!
Sockets Introduced in BSD 4.1 UNIX 1981. Sockets are the endpoints of any communication over the internet. Sockets are identified by socket addresses. Socket Address = IP Address + Port Number
IP Address -> MAC Address – Locate the specific system Destination Socket = 10.0.0.2 : 80 10.0.0.1 10.0.0.2
Port Number – Process specific Port 10000 Port 11000 Port 120000
Understanding Ports Gmail YM AVG Update OutLook Express Port 1 Port 2 Port 3 Port 4 Transport Layer Packet Port num data Network layer
Thus virtually, sockets are a connection between the two processes in different systems. Eg : Let the socket pairs be 10.0.0.1 : 80 and 184.108.40.206 : 2000 192.168.21.10 : 3000 and 192.168.100.1 : 6000
Networking Basics – the larger picture
TCP STACK Application (http,ftp,telnet,…) Transport (TCP, UDP,..) Network (IP,..) Link (device driver,..)
Network Basics - Where are these sockets?
TCP STACK Application (http,ftp,telnet,…) Sockets Transport (TCP, UDP,..) Network (IP,..) Link (device driver,..)
Now into Socket programming..
Socket Programming with TCP Server starts first.. Server Process must be running first Server must have created a socket which welcomes client’s connection. (Welcoming socket) Client contacts server by.. Creating Client local TCP socket Specify IP Address and port number of server process. When Client socket is created, the connection is established. When connection is established, server creates a new socket (Connection Socket) to communicate with that client and the Welcoming socket is once again waiting for connections for other clients.
create socket, connect to hostid, port=x create socket, port=x, for incoming request: clientSocket = Socket() welcomeSocket = ServerSocket() wait for incoming connection request connectionSocket = welcomeSocket.accept() send request using clientSocket read request from connectionSocket write reply to connectionSocket read reply from connectionSocket close connectionSocket close clientSocket Client/Server Socket Interaction in TCP Server Client TCP connection setup
Step 1 : Step 2 : Server port Server Connection request port Client port port Client Connection
Types of Sockets in TCP ServerSocket – the socket used by servers Socket – Socket used by clients Create a ServerSocket in the server and make it to wait for connections from Sockets from other clients
The concept of Streams Client output stream Server input stream Server socket Client socket Client input stream Server output stream
Socket Programming with UDP No Connection between client and server. No handshaking The sender has to explicitly mention the IP address and the port of the destination. The server should extract the IP Address of the datagram everytime. Uses DatagramSocket.
Client create socket, port=x, for incoming request: serverSocket = DatagramSocket() create socket, clientSocket = DatagramSocket() Create, address (hostid, port=x), send datagram request using clientSocket read request from serverSocket write reply to serverSocket specifying client host address, port number read reply from clientSocket close clientSocket Client/server socket interaction: UDP Server
Conclusion Socket Programming is very easy in Java. Usually each and every socket is handled by a separate thread in real-time client/server environments.