33 Jess Exp7
33 Jess Exp7
Here, we are going to make one-way client and server communication. In this
application, client sends a message to the server, server reads the message and prints it.
Here, two classes are being used: Socket and ServerSocket. The Socket class is used to
communicate client and server. Through this class, we can read and write message. The
ServerSocket class is used at server-side. The accept() method of ServerSocket class
blocks the console until the client is connected. After the successful connection of client,
it returns the instance of Socket at server-side.
#Socket class
A socket is simply an endpoint for communications between the machines. The Socket
class can be used to create a socket.
#ServerSocket class
The ServerSocket class can be used to create a server socket. This object is used to
establish communication with the clients.
Creating Server:
To create the server application, we need to create the instance of ServerSocket class.
Here, we are using 6666 port number for the communication between the client and
server. You may also choose any other port number. The accept() method waits for the
client. If clients connects with the given port number, it returns an instance of Socket.
ServerSocket ss=new ServerSocket(6666);
Socket s=ss.accept();//establishes connection and waits for the client
Creating Client:
To create the client application, we need to create the instance of Socket class. Here, we
need to pass the IP address or hostname of the Server and a port number. Here, we are
using "localhost" because our server is running on same system.
Socket s=new Socket("localhost",6666);
Output:
To execute this program open two command prompts and execute each program at each
command prompt as displayed in the below figures.
First run Myserver.java file in terminal/cmd,
Running MyServer.java
Then in new terminal/cmd run MyClient.java file,
Running MyClient.java
As soon as you run MyClient program a message is sent to server
and displayed in MyServer Terminal/CMD as shown below,
while (true) {
String messageToSend = scanner.nextLine();
out.println(messageToSend);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public void run() {
try (BufferedReader in = new BufferedReader(new
InputStreamReader(clientSocket.getInputStream()))) {
String message;
while ((message = in.readLine()) != null) {
System.out.println("Received: " + message);
broadcast(message);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
clientHandlers.remove(this);
try {
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Output:
REFERENC B.A. Forouzan, “Data Communications and Networking”, TMH, Fourth Edition.
ES https://www.tutorialspoint.com/unix_sockets/what_is_socket.htm
https://www.geeksforgeeks.org/socket-programming-in-java/
https://www.youtube.com/watch?v=UaM1JmQliTs