0% found this document useful (0 votes)
59 views18 pages

Q1. Write A Program in Java To Explain The Concept of "THREADING". Solution

The document describes how to implement threading in Java by extending the Thread class and implementing the Runnable interface. It provides code examples of creating a new thread by extending Thread and implementing Runnable. The code demonstrates starting the child thread and having it run code in a for loop with a sleep, while the main thread also runs a for loop with a longer sleep. Output from both threads is printed to demonstrate threading.

Uploaded by

Gagan Sardana
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)
59 views18 pages

Q1. Write A Program in Java To Explain The Concept of "THREADING". Solution

The document describes how to implement threading in Java by extending the Thread class and implementing the Runnable interface. It provides code examples of creating a new thread by extending Thread and implementing Runnable. The code demonstrates starting the child thread and having it run code in a for loop with a sleep, while the main thread also runs a for loop with a longer sleep. Output from both threads is printed to demonstrate threading.

Uploaded by

Gagan Sardana
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/ 18

Q1. Write a program in java to explain the concept of THREADING.

Solution: Threads can be implemented in two ways


1. By Extending the THREAD class.
2. By Implementing the RUNNABLE class.

Implementing the Runnable class.


CODE
class NewThread implements Runnable
{
Thread t;
NewThread()
{
t = new Thread(this, "Demo Thread");
System.out.println("Child thread: " + t);
t.start();
}
public void run()
{
try
{
for(int i = 5; i > 0; i--)
{
System.out.println("Child Thread: " + i);
Thread.sleep(500);
}
}
catch (InterruptedException e)
{
System.out.println("Child interrupted.");
}
System.out.println("Exiting child thread.");
}
}
class ThreadDemo
{
public static void main(String args[])
{
new NewThread();
a new thread
try
{
for(int i = 5; i > 0; i--)
{
System.out.println("Main Thread: " + i);
Thread.sleep(1000);
}
}
catch (InterruptedException e)
{
System.out.println("Main thread interrupted.");
}
System.out.println("Main thread exiting.");
}
}

// create

OUTPUT

Extending the THREAD class.


CODE
class Share extends Thread
{
static String msg[]={"This", "is", "a", "synchronized", "variable"};
Share(String threadname)
{
super(threadname);
}
public void run()
{
display(getName());
}
public void display(String threadN)
{
synchronized(this){
for(int i=0;i<=4;i++)
{
System.out.println(threadN+msg[i]);
}
try
{
this.sleep(1000);
}
catch(Exception e)
{
}
}
}
}
class Sync
{
public static void main(String[] args)
{
Share t1=new Share("Thread One: ");
t1.start();
Share t2=new Share("Thread Two: ");
t2.start();
}
}

OUTPUT

Q2. Write a program in java to implement Socket Programming.


Solution: A Client Server Chat Program
CODE

CLIENT.JAVA
import java.net.*;
import java.io.*;
public class Client implements Runnable
{
Socket s;
BufferedReader br;
BufferedWriter bw;
BufferedReader ppp;
String input = null;
public static void main(String[] args)
{
new Client();
}
public void run()
{
try
{
s.setSoTimeout(1);
}
catch(Exception e)
{
}
while (true)
{
try
{
System.out.println("Server: "+br.readLine());
}
catch (Exception h)
{
}
}
}
public Client()

try
{

s = new Socket("127.0.0.1",100);
br = new BufferedReader(new InputStreamReader(s.getInputStream()));
bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
ppp = new BufferedReader(new InputStreamReader(System.in));
Thread th;
th = new Thread(this);
th.start();
bw.write("Hello Server");
bw.newLine();
bw.flush();
while(true)
{
input = ppp.readLine();
bw.write(input);
bw.newLine();
bw.flush();
}

}
catch(Exception e)
{
}

SERVER.JAVA
import java.net.*;
import java.io.*;
public class ServerApp implements Runnable
{
ServerSocket s;
Socket s1;
BufferedReader br;
BufferedWriter bw;
BufferedReader ppp;
String input = null;
public void run()
{
try
{
s1.setSoTimeout(1);
}
catch(Exception e)
{
}
while (true)
{
try
{
System.out.println("Client: "+br.readLine());
}
catch (Exception h)
{
}
}
}
public static void main(String arg[])
{
new ServerApp();
}
public ServerApp()

try
{

s = new ServerSocket(100);
s1=s.accept();
br = new BufferedReader(new InputStreamReader(s1.getInputStream()));
bw = new BufferedWriter(new OutputStreamWriter(s1.getOutputStream()));
ppp = new BufferedReader(new InputStreamReader(System.in));
Thread th;
th = new Thread(this);
th.start();
while(true)
{
input = ppp.readLine();
bw.write(input);
bw.newLine();
bw.flush();
}

}
catch(Exception e)
{
}

OUTPUT

Q3. Write a program in java for Sending E-Mails.


Solution: import
import
import
import
import
import

java.util.Date;
java.util.Properties;
javax.mail.Message;
javax.mail.Session;
javax.mail.Transport;
javax.mail.internet.MimeMessage;

public class Gmail


{
public static
{
String
String
String
try
{

OUTPUT

void main(String ss[])


host = "smtp.gmail.com";
username = "somgaj";
password = "qwaszx,.12/3";
Properties props = new Properties();
props.put("mail.smtps.auth", "true");
props.put("mail.from","[email protected]");
Session session = Session.getInstance(props, null);
Transport t = session.getTransport("smtps");
t.connect(host, username, password);
MimeMessage msg = new MimeMessage(session);
msg.setFrom();
msg.setRecipients(Message.RecipientType.TO, "[email protected]");
msg.setSubject("Hello Soumya!!");
msg.setSentDate(new Date());
msg.setText("Hi! FROM JAVA....If you recieve this, it is a success....");
t.sendMessage(msg, msg.getAllRecipients());

}
catch(Exception ee)
{
System.out.println(ee.toString());
}

Q4. Write a program in java for Implementing Calculator in an Applet.


Solution: -

CODE
CAL.JAVA
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
class Cal extends Applet implements ActionListener
{
String msg=" ";
int v1,v2,result;
TextField t1;
Button b[]=new Button[10];
Button add,sub,mul,div,clear,mod,EQ;
char OP;
public void init()
{
Color k=new Color(120,89,90);
setBackground(k);
t1=new TextField(10);
GridLayout gl=new GridLayout(4,5);
setLayout(gl);
for(int i=0;i<10;i++)
{
b[i]=new Button(""+i);
}
ad=new Button("add");
sub=new Button("sub");
mul=new Button("mul");
div=new Button("div");
mod=new Button("mod");
clear=new Button("clear");
EQ=new Button("EQ");
t1.addActionListener(this);
add(t1);
for(int i=0;i<10;i++)
{
add(b[i]);
}
add(ad);
add(sub);
add(mul);
add(div);
add(mod);
add(clear);
add(EQ);
for(int i=0;i<10;i++)
{
b[i].addActionListener(this);
}
ad.addActionListener(this);
sub.addActionListener(this);
mul.addActionListener(this);
div.addActionListener(this);
mod.addActionListener(this);
clear.addActionListener(this);
EQ.addActionListener(this);
}

public void actionPerformed(ActionEvent ae)


{
String str=ae.getActionCommand();
char ch=str.charAt(0);
if ( Character.isDigit(ch))
t1.setText(t1.getText()+str);
else
if(str.equals("ad"))
{
v1=Integer.parseInt(t1.getText());
OP='+';
t1.setText("");
}
else if(str.equals("sub"))
{
v1=Integer.parseInt(t1.getText());
OP='-';
t1.setText("");
}
else if(str.equals("mul"))
{
v1=Integer.parseInt(t1.getText());
OP='*';
t1.setText("");
}
else if(str.equals("div"))
{
v1=Integer.parseInt(t1.getText());
OP='/';
t1.setText("");
}
else if(str.equals("mod"))
{
v1=Integer.parseInt(t1.getText());
OP='%';
t1.setText("");
}
if(str.equals("EQ"))
{
v2=Integer.parseInt(t1.getText());
if(OP=='+')
result=v1+v2;
else if(OP=='-')
result=v1-v2;
else if(OP=='*')
result=v1*v2;
else if(OP=='/')
result=v1/v2;
else if(OP=='%')
result=v1%v2;
t1.setText(""+result);
}
if(str.equals("clear"))
{
t1.setText("");
}
}

CALCULATOR.HTML
<html>
<applet code=Cal.class height=500 width=400>
</applet>
</HTML>

OUTPUT

Q6. Write a program in java for Implementing RMI.


Solution: An applet using RMI implementing a calculator.

CODE
CLIENT.JAVA
import
import
import
import

java.rmi.*;
java.rmi.registry.*;
java.awt.*;
java.awt.event.*;

class mathClient extends Frame implements ActionListener


{
Button B1=new Button("Sum");
Button B2=new Button("Subtract");
Button B3=new Button("Multiply");
Button B4=new Button("Divide");
Label l1=new Label("Number 1");
Label l2=new Label("Number 2");
Label l3=new Label("Result");
TextField t1=new TextField(20);
TextField t2=new TextField(20);
TextField t3=new TextField(20);
public mathClient()
{
super("Calculator");
setLayout(null);
l1.setBounds(20,50,55,25);
add(l1);
l2.setBounds(20,100,55,25);
add(l2);
l3.setBounds(20,150,55,25);
add(l3);
t1.setBounds(150,50,100,25);
add(t1);
t2.setBounds(150,100,100,25);
add(t2);
t3.setBounds(150,150,100,25);
add(t3);
B1.setBounds(20,200,80,25);
add(B1);
B2.setBounds(100,200,80,25);
add(B2);
B3.setBounds(180,200,80,25);
add(B3);
B4.setBounds(260,200,80,25);
add(B4);
B1.addActionListener(this);
B2.addActionListener(this);
B3.addActionListener(this);
B4.addActionListener(this);
addWindowListener(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}

);
}
public void actionPerformed(ActionEvent AE)
{
if(AE.getSource()==B1)
{
sum();
}
else if(AE.getSource()==B2)
{
subt();
}
else if(AE.getSource()==B3)
{
mult();
}
else if(AE.getSource()==B4)
{
div();
}
}
public void sum()
{
int i=Integer.parseInt(t1.getText());
int j=Integer.parseInt(t2.getText());
int val;
try
{
String ServerURL="MathServ";
mathInterface MI=(mathInterface)Naming.lookup(ServerURL);
val=MI.add(i,j);
t3.setText(""+val);
}
catch(Exception ex)
{
System.out.println("Exception:"+ex);
}
}
public void subt()
{
int i=Integer.parseInt(t1.getText());
int j=Integer.parseInt(t2.getText());
int val;
try
{
String ServerURL="MathServ";
mathInterface MI=(mathInterface)Naming.lookup(ServerURL);
val=MI.subt(i,j);
t3.setText(""+val);
}
catch(Exception ex)
{
System.out.println("Exception:"+ex);
}
}
public void mult()
{
int i=Integer.parseInt(t1.getText());
int j=Integer.parseInt(t2.getText());
int val;
try
{
String ServerURL="MathServ";
mathInterface MI=(mathInterface)Naming.lookup(ServerURL);
val=MI.mult(i,j);

t3.setText(""+val);
}
catch(Exception ex)
{
System.out.println("Exception:"+ex);
}
}
public void div()
{
int i=Integer.parseInt(t1.getText());
int j=Integer.parseInt(t2.getText());
int val;
try
{
String ServerURL="MathServ";
mathInterface MI=(mathInterface)Naming.lookup(ServerURL);
val=MI.div(i,j);
t3.setText(""+val);
}
catch(Exception ex)
{
System.out.println("Exception:"+ex);
}
}
public static void main(String args[])
{
mathClient MC=new mathClient();
MC.setVisible(true);
MC.setSize(600,500);
};

SERVER.JAVA
import java.rmi.*;
import java.rmi.Naming.*;
import java.rmi.server.*;
import java.rmi.registry.*;
import java.net.*;
import java.util.*;
interface mathInterface extends Remote
{
public int add(int a,int b) throws RemoteException;
public int subt(int a,int b) throws RemoteException;
public int mult(int a,int b) throws RemoteException;
public int div(int a,int b) throws RemoteException;
}
class mathServer extends UnicastRemoteObject implements mathInterface
{
public mathServer() throws RemoteException
{
System.out.println("Initializing Server");
}
public int add(int a,int b)
{
return(a+b);
}
public int subt(int a,int b)
{
return(a-b);
}
public int mult(int a,int b)
{
return(a*b);
}

public int div(int a,int b)


{
return(a/b);
}
public static void main(String args[])
{
try
{
mathServer ms=new mathServer();
java.rmi.Naming.rebind("MathServ",ms);
System.out.println("Server Ready");
}
catch(RemoteException RE)
{
System.out.println("Remote Server Error:"+ RE.getMessage());
System.exit(0);
}
catch(MalformedURLException ME)
{
System.out.println("Invalid URL!!");
}
}

OUTPUT

Q7. Write a program in java for reading a file from a designated URL.
Solution: I have used my drop-box account for accessing a file stored in my DROPBOX server.

CODE
import java.io.BufferedInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;

import java.net.URL;
class MainClass {
public static void main(String[] args) throws Exception {
URL u = new URL("https://dl.dropbox.com/u/94684259/Rajat.txt");
InputStream in = u.openStream();
in = new BufferedInputStream(in);
Reader r = new InputStreamReader(in);
int c;
while ((c = r.read()) != -1) {
System.out.print((char) c);
}
}
}
OUTPUT

Q8. Write a program in java implementing File input output functions.


Solution: CODE
import java.io.*;
public class CopyFile
{
private static void copyfile(String srFile, String dtFile)
{
try
{
File f1 = new File(srFile);
File f2 = new File(dtFile);

InputStream in = new FileInputStream(f1);


OutputStream out = new FileOutputStream(f2);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0)
{
out.write(buf, 0, len);
}
in.close();
out.close();
System.out.println("File copied.");

}
catch(FileNotFoundException ex)
{
System.out.println(ex.getMessage() + " in the specified directory.");
System.exit(0);
}
catch(IOException e)
{
System.out.println(e.getMessage());
}

}
public static void main(String[] args)
{
switch(args.length)
{
case 0: System.out.println("File has not mentioned.");
System.exit(0);
case 1: System.out.println("Destination file has not mentioned.");
System.exit(0);
case 2: copyfile(args[0],args[1]);
System.exit(0);
default : System.out.println("Multiple files are not allow.");
System.exit(0);
}
}

OUTPUT

Q9. Write a program in java implementing Java Beans.


Solution: Implementing a counter with JSP on a server for counting number of website views.

CODE
COUNTERBEAN.JAVA
package form;
public class CounterBean implements java.io.Serializable
{
int coun = 0;

public CounterBean()
{
}
public int getCoun()
{
coun++;
return this.coun;
}
public void setCoun(int coun)
{
this.coun = coun;
}

COUNTER.JSP
<%@ page language="java" %>
<jsp:useBean id="counter" scope="session" class="form.CounterBean" />
<HTML>
<HEAD><TITLE>Use Bean Counter Example</TITLE>
</HEAD>
<BODY>
<table><tr><td><b>The current count for the counter bean is: </b>
<%=counter.getCoun() %></td></tr>
</table
</BODY>
</HTML>
OUTPUT

Q10. Write a program in java implementing Swings.


Solution: CODE
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.html.*;
public class bar
{
final static int interval = 1000;
int i;
JLabel label;
JProgressBar pb;
Timer timer;
JButton button;
public bar()
{
JFrame frame = new JFrame("Progress Bar :: By - Rajat Suneja");
button = new JButton("Start");
button.addActionListener(new ButtonListener());
pb = new JProgressBar(0, 20);
pb.setValue(0);
pb.setStringPainted(true);
label = new JLabel("Rajat Suneja");
JPanel panel = new JPanel();
panel.add(button);
panel.add(pb);
JPanel panel1 = new JPanel();
panel1.setLayout(new BorderLayout());
panel1.add(panel, BorderLayout.NORTH);
panel1.add(label, BorderLayout.CENTER);
panel1.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
frame.setContentPane(panel1);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
timer = new Timer(interval, new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
if (i == 20)
{

Toolkit.getDefaultToolkit().beep();
timer.stop();
button.setEnabled(true);
pb.setValue(0);
String str = "<html>" + "<font color=\"#FF0000\">" + "<b>" +
"Downloading completed." + "</b>" + "</font>" + "</html>";
label.setText(str);
}
i = i + 1;
pb.setValue(i);
}
});
}
class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent ae)
{
button.setEnabled(false);
i = 0;
String str = "<html>" + "<font color=\"#008000\">" + "<b>" + "Downloading
is in process......." + "</b>" + "</font>" + "</html>";
label.setText(str);
timer.start();
}
}
public static void main(String[] args)
{
bar spb = new bar();
}
}

OUTPUT -

You might also like