0% found this document useful (0 votes)
47 views16 pages

PRACTICAL 10 (Java)

The document describes 3 practical programming assignments, including designing a chatting application using socket programming to allow message passing between clients, an application to add and display student information using Swing, and a Swing-based calculator application. Code snippets and output are provided for a group chat application that allows multiple clients to join a multicast group to send and receive messages from each other.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views16 pages

PRACTICAL 10 (Java)

The document describes 3 practical programming assignments, including designing a chatting application using socket programming to allow message passing between clients, an application to add and display student information using Swing, and a Swing-based calculator application. Code snippets and output are provided for a group chat application that allows multiple clients to join a multicast group to send and receive messages from each other.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

PRACTICAL 10

Aim: Design a swing program to print the factorial for an


input
Code:
Output:

B. Design a swing application that contains the interface to


add student information and display the same.
Code:
Output:
C. Design a calculator based on swing application.
Code:
Output:
PRACTICAL 9
Aim: Design a chatting application by using Socket
programming.
Code:
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.TERMINA
TE))
{
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!");
}
}
}
}
Output:

You might also like