Okay, Continuing the part 01 of this set. Let's get on with the practical side. Here I'll be using Java as the language and lets look at socket Programming.
First things first some analogies
What is a socket?
Socket is an end point actually. This end point need to be there for some communication to happen. If not the sender will not know where to connect or not. Socket is the combination of the IP address and the Port no. the IP address determines the computer and the Port determines the Protocol and the application.
Then what is a Port?
When an application runs on the computer a specific address is located for it. This specific address or the PORT can ether be TCP or UDP (Two Transport layer protocols). A port can have any number between 0 - 65,535. The port numbers below 1024 are most frequently used so if you are creating a custom application just use something above 1024.
TCP vs UDP
TCP is for Transmission Control Protocol and UDP is for User Datagram Protocol. TCP is connection oriented and UDP is connectionless protocol. The packet size of TCP is larger than the UDP. TCP does error cheching and UDP does too but no recovery mechanism since of the conectionless orientation.
Before gong into some real programming the below diagram shows the flow of connecting a server and a client in TCP.
So That's it with the basic terminology lets do some Socket programming.
First Thing I'm gonna do is to create a Simple Server which outputs the Date and Time and connect using Telnet.
Its easy to remember the process in 3 simple steps
This is the simple code to start a Simple server the intended outcome is to output the date and time.
Lets see how to connect using telnet client in Windows.
01) Make sure you have enabled Telnet Client in windows Features. If not Follow this: https://technet.microsoft.com/en-us/library/cc771275(v=ws.10).aspx
02) Open Command Prompt and Type in >telnet {host} {pot no} Here we use > telnet localhost 9000 (Make sure your code is running)
The below 2 figures will show the respective steps:
First things first some analogies
What is a socket?
Socket is an end point actually. This end point need to be there for some communication to happen. If not the sender will not know where to connect or not. Socket is the combination of the IP address and the Port no. the IP address determines the computer and the Port determines the Protocol and the application.
Then what is a Port?
When an application runs on the computer a specific address is located for it. This specific address or the PORT can ether be TCP or UDP (Two Transport layer protocols). A port can have any number between 0 - 65,535. The port numbers below 1024 are most frequently used so if you are creating a custom application just use something above 1024.
TCP vs UDP
TCP is for Transmission Control Protocol and UDP is for User Datagram Protocol. TCP is connection oriented and UDP is connectionless protocol. The packet size of TCP is larger than the UDP. TCP does error cheching and UDP does too but no recovery mechanism since of the conectionless orientation.
Before gong into some real programming the below diagram shows the flow of connecting a server and a client in TCP.
So That's it with the basic terminology lets do some Socket programming.
First Thing I'm gonna do is to create a Simple Server which outputs the Date and Time and connect using Telnet.
Its easy to remember the process in 3 simple steps
- Open the server Socket
- Wait for someone (Client) to connect to the server
- Communication - Data input and output
import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.Date; public class MySimpleServer { public static void main(String[] args) { //Step 01: Create and open server Socker try { ServerSocket server = new ServerSocket(9000); //Create a server Socket with socket no 9000 Socket client = server.accept(); // waiting for the Client to accept the server connection Date d = new Date(); DataOutputStream ds = new DataOutputStream((client.getOutputStream())); ds.writeBytes(d.toString()); client.close(); // remember to close the connection } catch (IOException e) { e.printStackTrace(); } } }
This is the simple code to start a Simple server the intended outcome is to output the date and time.
Lets see how to connect using telnet client in Windows.
01) Make sure you have enabled Telnet Client in windows Features. If not Follow this: https://technet.microsoft.com/en-us/library/cc771275(v=ws.10).aspx
02) Open Command Prompt and Type in >telnet {host} {pot no} Here we use > telnet localhost 9000 (Make sure your code is running)
The below 2 figures will show the respective steps:
Figure 1
Figure 2: Connected and connection terminated.
So that's it and lets meet up with another code.