Hi guys, I’m OM BHUSAL from CodeWithNepal.com, and in this blog, I’m going to show you How To Make a Group Chat APP Using JAVA. Now after reading this blog, you will be able to make Group Chatting APP like this, by using Java. So, don’t miss this blog out and read it till the end, to learn how to do it.
In this blog, a group chat application using MulticastSocket (Java Platform SE 16) class is discussed. A MulticastSocket is a (UDP) DatagramSocket, with additional capabilities for joining “groups” of other multicast hosts on the internet.
Implementation
//code by CODEWITHNEPAL import java.net.*; import java.io.*; import java.util.*; public class GroupChat { private static final String TERMINATE = "Exit"; static String name; static volatile boolean finished = false; public static void main(String[] args) { if (args.length != 2) System.out.println("Two arguments required: <multicast-host> <port-number>"); else { try { InetAddress group = InetAddress.getByName(args[0]); int port = Integer.parseInt(args[1]); Scanner sc = new Scanner(System.in); System.out.print("Enter your name: "); name = sc.nextLine(); MulticastSocket socket = new MulticastSocket(port); // Since we are deploying socket.setTimeToLive(0); //this on localhost only (For a subnet set it as 1) socket.joinGroup(group); Thread t = new Thread(new ReadThread(socket,group,port)); // Spawn a thread for reading messages t.start(); // sent to the current group System.out.println("Start typing messages...\n"); while(true) { String message; message = sc.nextLine(); if(message.equalsIgnoreCase(GroupChat.TERMINATE)) { finished = true; socket.leaveGroup(group); socket.close(); break; } message = name + ": " + message; byte[] buffer = message.getBytes(); DatagramPacket datagram = new DatagramPacket(buffer,buffer.length,group,port); socket.send(datagram); } } catch(SocketException se) { System.out.println("Error creating socket"); se.printStackTrace(); } catch(IOException ie) { System.out.println("Error reading/writing from/to socket"); ie.printStackTrace(); } } } } class ReadThread implements Runnable { private MulticastSocket socket; private InetAddress group; private int port; private static final int MAX_LEN = 1000; ReadThread(MulticastSocket socket,InetAddress group,int port) { this.socket = socket; this.group = group; this.port = port; } @Override public void run() { while(!GroupChat.finished) { byte[] buffer = new byte[ReadThread.MAX_LEN]; DatagramPacket datagram = new DatagramPacket(buffer,buffer.length,group,port); String message; try { socket.receive(datagram); message = new String(buffer,0,datagram.getLength(),"UTF-8"); if(!message.startsWith(GroupChat.name)) System.out.println(message); } catch(IOException e) { System.out.println("Socket closed!"); } } } }
Save the file as GroupChat.java and compile it using javac and then run the program using two command-line arguments as specified. A multicast host is specified by a class D IP address and by a standard UDP port number. Class D IP addresses are in the range 224.0.0.0 to 239.255.255.255, inclusive. The address 224.0.0.0 is reserved and should not be used.
Here is a sample output of the above program:
You Might Like This Blog.
How to Convert Your Website to Android App using An Android Studio?
How to Compile GroupChat.java?
How to add Users in GroupChat.java?
User 1
User 2
[…] How To Make A Group Chat APP Using JAVA. […]
[…] How To Make A Group Chat APP Using JAVA. […]
[…] How To Make A Group Chat APP Using JAVA. […]
[…] How To Make A Group Chat APP Using JAVA. […]