Practical: 1: Aim: Create Chat Application Using TCP & UDP Protocol. Connection On Both Sides Should
Practical: 1: Aim: Create Chat Application Using TCP & UDP Protocol. Connection On Both Sides Should
Practical : 1
Aim : Create chat application using TCP & UDP protocol. Connection on both sides should
end if any one of them types ‘bye’. Implement this on localhost as well as on multiple
devices. Input:
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class server extends
Thread{ ServerSocket ss=null;
Socket s=null;
public server(int port) throws Exception
{ ss=new ServerSocket(port);
System.out.println("waiting");
s=ss.accept();
System.out.println("server connected to client");
DataInputStream dis=new DataInputStream(s.getInputStream());
DataOutputStream dos=new DataOutputStream(s.getOutputStream());
String str,str1;
Scanner sc =new Scanner(System.in);
while(true) {
str=dis.readUTF();
if((str.equals("Bye"))) {
dos.writeUTF(str);
break;}
System.out.println(" "+str+":C");
str1=sc.nextLine();
dos.writeUTF(str1);
}
s.close();
System.out.println("server disconnected");
}
public static void main(String []args) throws Exception {
server s=new server(9090);
}
}
Client Tcp
package server;
import java.io.*;
import java.net.*;
import java.util.Scanner;
String str;
while(true) {
str=br.readLine();
dos.writeUTF(str);
String str1=(String)dis.readUTF();
if((str1.equals("bye")))
{
dos.writeUTF(str);
break;
}
System.out.println(" "+str1+":S");
}
System.out.println("client disconnected");
dis.close();
s.close();
}
public static void main(String []args) throws Exception {
client c=new client("127.0.0.1",9090);
}
}
Server Udp
package udpchat;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import
java.net.SocketException;
import java.util.Scanner;
import java.io.BufferedInputStream;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
UDP Server
hii--C
hii
how Are u??--C
fine !! and you
fine--C
bye
UDP Client
hii
hii--s
how Are u??
fine !! and you--s
fine
bye--s
bye
page. 4
Vaibhav Dhaduk 170280116012
Practical : 2
Aim : Write a network program in which client send a text file to server and server returns
number of characters, lines, words and sentences of that file to client using TCP & UDP.
Input:
TCP Server
package prac2;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
while((string=dis.readUTF())!=null)
{ if(string.equals("exit")) {
break;
}
System.out.println(string);
word=string.split(" ");
no_of_word=word.length;
for(String x:word) {
no_of_char+=x.length();
}
no_of_sentence++;
}
}
}
TCP Client
package prac2;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
String string;
System.out.println(dis.readUTF());
dis.close();
br.close();
dos.close();
socket.close();
}
UDP Server
import
java.net.DatagramPacket;
import
java.net.DatagramSocket;
import java.util.Scanner;
ds.receive(dp);
}
else if(c==' '&& str.charAt(i+1)!=' ')
{ no_of_word++;
}
else {
no_of_char++;
}
System.out.println(no_of_char);
}
String data="total no of Character :"+no_of_char+"Total no of
Word"+no_of_word+"Total no of Sentence"+no_of_sentence;
dp2=new DatagramPacket(data.getBytes(),data.length(),dp.getAddress(),dp.getPort());
ds.send(dp2);
}
public static void main(String[]args) throws Exception {
server su=new server(9091);
}
}
UDP Client
import java.io.File;
import java.io.FileInputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
page. 7
Vaibhav Dhaduk 170280116012
}
public static void main(String []args) throws Exception {
client uc=new client(9091);
}
}
Output:
TCP Server
waiting
Connected
VaibhavDhaduk
i study in LDCE
In Branch Information Technology
hearserver
sent success fully
TCP Client
total no of Character :52Total no of Word4Total no of Sentence3
UDP Server
waiting
connected
VaibhavDhaduk
i study in LDCE
In Branch Information Technology
exit
UDP Client
sent successfully
total no of Character :59Total no of Word7Total no of Sentence3
page. 8
Vaibhav Dhaduk 170280116012
Practical : 3
Aim : Implement any one sorting algorithm using TCP/UDP on Server application. Client
sends numbers to the server, server sorts them and passes back to the client.
Input:
Client
package ftptcp;
import java.io.BufferedInputStream;
import
java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import
java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import
java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
s.close();
System.out.println("hiii");
}
page. 9
Vaibhav Dhaduk 170280116012
Server
package ftptcp;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Scanner;
import org.omg.CORBA.DataOutputStream;
System.out.println("Send Successfully");
bis.close();
s.close();
ss.close();
System.out.println("Success");
}
}
Output:
Client File
1
4
3
15
10
9
18
14
16
17
Server File
1
3
4
9
10
14
15
16
17
18
page. 11
Vaibhav Dhaduk 170280116012
Practical : 4
Aim : Implement Concurrent TCP Server programming in which more than one client can
connect and communicate with Server for sending the string and server returns the reverse of
string to each client.
Input:
Server
package multipleclient;
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
}
}
}
class handle extends
Thread{ public static int
count=0;
DataInputStream dis=null;
DataOutputStream dos=null;
Socket s;
public handle(Socket s1, DataInputStream dis1,DataOutputStream dos2) throws IOException {
s=s1;
dis=dis1;
dos=dos2;
}
public void run()
{ try {
count++;
StringBuffer rev=new StringBuffer(dis.readUTF());
System.out.println(rev.reverse());
String strr=new String(rev);
dos.writeUTF(strr+" to client:->"+count);
dos.close();
dis.close();
s.close();
}
page. 12
Vaibhav Dhaduk 170280116012
catch(Exception E) {
System.out.println(E);
}
}
}
Client
package multipleclient;
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
}
Output:
Client
Vaibhav
Dhaduk
IT
AHM
Server
vahbiaV to client:>1
kudahD to client:->2
TI to client:->3
MHA to client:->4
page. 13
Vaibhav Dhaduk 170280116012
Practical : 5
Aim : Write a JDBC program to perform all CRUD operations on data stored in student
table containing the columns for roll number, name and result in percentage using Statement
and Updatable ResultSet.
Input:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;
public class jdbc{
public static void main(String args[]) throws Exception
{ String url = "jdbc:mysql://localhost:3306/mydata";
String user = "root";
String pass = "root";
case 4:
}
}
}
}
Output:
1:for create
2:for update
3:for read
4:for delete
5:for exit
insert student id :
133
11:for update id 22:for update branch 33: for update name 44:for update marks
page. 16
Vaibhav Dhaduk 170280116012
page. 17
Vaibhav Dhaduk 170280116012
Practical : 6
Aim : Create a Menu driven program in JDBC for the information given below. Implement it
using:
a) Prepared Statement
b) Callable Statement
Create following Table schema:
1. Employee_Detail (employee_number number NOT NULL Primary key,
employee_name varchar2(50) NOT NULL, department_id number, salary number,
department_name varchar2(50) NOT NULL).
2. Emp_Personal_detail (employee_number number as foreign key,
emp_designation varchar2(20), basic_salary number, allowance number, hiredate
date, phone_number varchar2(20), email varchar2(25), photo as blob, resume as
clob, emp_address varchar2(100)).
• Display all the Records from the both tables by employee_number.
• Insert Record into the Table. (Hint: - create stored procedure insertdata() in PL/SQL to
insert all the field in both tables. Call the procedure from java application when using
Callable Statement).
• Update The existing record by asking employee_number) (HINT: - Take
Updable Resultset)
• Delete Record by asking employee_number)) (Hint: - Take Updable Resultset)
• Program should handle SQLException and SqlWarning.
Input:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Blob;
import
java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.Scanner;
import javax.sql.rowset.serial.SerialBlob;
Connection con ;
System.out.println("....................updated successfull..................");
System.out.println("are you want to commit ? if yes press 1 or for rollback press 2");
int test=sc.nextInt();
if(test==1) {con.commit();}
else {con.rollback();}
System.out.println("..................Employee data...................");
ShowData();
break;
}
case 2: {
System.out.println("....................updated successfull..................");
System.out.println("are you want to commit ? if yes press 1 or for rollback press 2");
int test=sc.nextInt();
if(test==1) {con.commit();}
else {con.rollback();}
System.out.println("..................Employee data...................");
ShowData();
break;
}
case 3: {
System.out.println("....................updated successfull..................");
System.out.println("are you want to commit ? if yes press 1 or for rollback press 2");
int test=sc.nextInt();
if(test==1) {con.commit();}
else {con.rollback();}
System.out.println("..................Employee data...................");
ShowData();
break;
}
case 4: {
System.out.println("enter a new department name");
System.out.println("....................updated successfull..................");
System.out.println("are you want to commit ? if yes press 1 or for rollback press 2");
int test=sc.nextInt();
if(test==1) {con.commit();}
else {con.rollback();}
System.out.println("..................Employee data...................");
ShowData();
break;
}
default:
throw new IllegalArgumentException("Unexpected value: " + choice);
}
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","root");
con.setAutoCommit(false);
System.out.println("enter a employee id ");
int id = sc.nextInt();
String queryForeign = "DELETE FROM emp_personal_detail WHERE employee_number ="+id;
String query = "DELETE FROM employee_detail WHERE employee_number ="+id;
PreparedStatement stmt = con.prepareStatement(queryForeign);
PreparedStatement stmt1 = con.prepareStatement(query);
stmt.executeUpdate();
stmt1.executeUpdate();
stmt.close();
stmt1.close();
page. 20
Vaibhav Dhaduk 170280116012
System.out.println("recorde deleted successfull");
System.out.println("are you want to commit ? if yes press 1 or for rollback press 2");
int test=sc.nextInt();
if(test==1) {con.commit();}
else {con.rollback();}
System.out.println("..................Employee data...................");
ShowData();
System.out.println("..................Employee data...................");
page. 21
Vaibhav Dhaduk 170280116012
ShowData();
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","root");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM student.employee_detail d join
student.emp_personal_detail p where d.employee_number=p.employee_number");
while (rs.next()) {
for (int i = 1; i <= 15; i++)
{ if(i==13 || i==14)continue;
System.out.printf("%-20s",rs.getString(i));
}
System.out.println();
}
while(loop) {
int choice;
System.out.println("enter your choice \n 1. for show entry \n 2. for insert new employee \n
3.for update by employee number \n 4. for delete by employee number");
choice = sc.nextInt();
switch (choice)
{ case 1: {
emp.ShowData();
break;
}
case 2: {
emp.InsertEmployee();
break;
}
case 3: {
emp.UpdateEmployee();
break;
}
case 4: {
emp.DeleteEmployee();
break;
page. 22
Vaibhav Dhaduk 170280116012
}
case 5: {
loop =false;
break;
}
default:
throw new IllegalArgumentException("Unexpected value: " + choice);
}
}
}
}
Output:
enter your choice
1. for show entry
2. for insert new employee
3.for update by employee number
4. for delete by employee
number 1
Aim : Write a JDBC program for transaction management for practical no. 5 or 6. Use
checkpoints, commit and rollback features.
Input:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Blob;
import
java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.Scanner;
import javax.sql.rowset.serial.SerialBlob;
Connection con ;
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","root");
con.setAutoCommit(false);
System.out.println("enter a employee id ");
int id = sc.nextInt();
String queryForeign = "DELETE FROM emp_personal_detail WHERE employee_number ="+id;
String query = "DELETE FROM employee_detail WHERE employee_number ="+id;
PreparedStatement stmt = con.prepareStatement(queryForeign);
PreparedStatement stmt1 = con.prepareStatement(query);
stmt.executeUpdate();
stmt1.executeUpdate();
stmt.close();
stmt1.close();
System.out.println("recorde deleted successfull");
System.out.println("are you want to commit ? if yes press 1 or for rollback press 2");
int test=sc.nextInt();
if(test==1) {con.commit();}
else {con.rollback();}
page. 24
Vaibhav Dhaduk 170280116012
System.out.println("..................Employee data...................");
ShowData();
}
private void ShowData() throws SQLException {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","root");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM student.employee_detail d join
student.emp_personal_detail p where d.employee_number=p.employee_number");
while (rs.next()) {
for (int i = 1; i <= 15; i++)
{ if(i==13 || i==14)continue;
System.out.printf("%-20s",rs.getString(i));
}
System.out.println();
}
Output:
enter a employee id
4
recorde deleted successfull
are you want to commit ? if yes press 1 or for rollback press 2
2
..................Employee data....................
1 Vaibhav 101 1000.0 it 1 devloper 2000.0
2 2020-02-25 9944558855 [email protected] null
4 Maulik 101 5000.0 ec 4 de 6000.0
2 2020-02-25 9944558855 [email protected] null
5 Dipak 101 5000.0 elec 5 de 6000. 0
2 2020-02-25 9944558855 [email protected] null
page. 25
Vaibhav Dhaduk 170280116012
Practical : 8
Aim : a) Write a servlet to display age of a person by asking his/her date of birth. b) Write a
Servlet Program to Print Today’s Date and time using refresh header..
Input:
a)
Servlet
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Age
*/
@WebServlet("/Age")
public class Age extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Age()
{ super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
// TODO Auto-generated method stub
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
page. 26
Vaibhav Dhaduk 170280116012
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
// TODO Auto-generated method stub
String date=request.getParameter("date");
Date date1;
DateTimeFormatter dateTimeFormatter=DateTimeFormatter.ofPattern("yyyy-MM-dd");
Html
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="/prac8/Age">
<input type="date" name="date"/>
<input type="submit">
</form>
</body>
</html>
Output:
a):
page. 27
Vaibhav Dhaduk 170280116012
Input:
b):
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class AutoRefresh
*/
@WebServlet("/AutoRefresh")
public class AutoRefresh extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public AutoRefresh()
{ super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setIntHeader("Refresh", 1);
response.setContentType("text/html");
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
// TODO Auto-generated method
stub doGet(request, response);
}
Output:
b)
page. 29
Vaibhav Dhaduk 170280116012
Practical : 9
Aim : Write a servlet which accepts 10+ numbers using the post method as well as get
method and displays the arithmetic mean, geometric mean and harmonic mean of those
numbers..
Input:
package Servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/First")
public class First extends HttpServlet
{ double sum =0;
double sum1=1;
double sum3=0;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.sendRedirect("Number.html");
}
page. 30
Vaibhav Dhaduk 170280116012
Number.html
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
</form>
</body>
</html>
Output:
Get
Post
page. 31
Vaibhav Dhaduk 170280116012
Practical : 10
Aim : a) Write a servlet to store your personal details as a cookie and then display it by
reading from the cookie.
b) Write a Servlet that uses cookies to store the number of times a user has visited the page.
Input:
A)
Get Servlet:
package Prac10;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/DisplayServlet")
public class DisplayServlet extends HttpServlet {
try{
response.setContentType("text/html");
PrintWriter pwriter = response.getWriter();
Cookie c[]=request.getCookies();
pwriter.print("email: "+c[1].getValue());
pwriter.close();
}catch(Exception exp){
System.out.println(exp);
}
}
page. 32
Vaibhav Dhaduk 170280116012
Post Servlet
package Prac10;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/PracA")
public class PracA extends HttpServlet {
response.sendRedirect("Personal.html");
}
response.addCookie(c1);
response.addCookie(c2);
response.sendRedirect("/Prac10/DisplayServlet");
}
}
Person.html
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="/Prac10/PracA" method="post">
<input name="name" placeholder="enter a name" type="text" />
<input name="email" placeholder="enter a email address" type="text" />
page. 33
Vaibhav Dhaduk 170280116012
B)
package Prac10;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/PracB")
public class PracB extends HttpServlet {
private static final long serialVersionUID = 1L;
int i = 0;
Cookie [] c2 = request.getCookies();
pwriter.print("total visits: "+c2[0].getValue());
}
doGet(request, response);
}
}
page. 34
Vaibhav Dhaduk 170280116012
Output: –
page. 35