Aim:
To write a java
program for socket for HTTP for web page upload and download .
Algorithm
1.Start the program.
2.Get the frame size
from the user
3.To
create the frame based on the user request.
4.To
send frames to server from the client side.
5.If your frames
reach the server it will send ACK signal to client otherwise it will
send NACK signal to client.
6.Stop the program
Program :
Client
import
javax.swing.*;
import java.net.*;
import
java.awt.image.*;
import
javax.imageio.*;
import java.io.*;
import
java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream;
import java.io.File;
import
java.io.IOException; import javax.imageio.ImageIO;
public class Client{
public static void
main(String args[]) throws Exception{ Socket soc;
BufferedImage img =
null;
soc=new
Socket("localhost",4000);
System.out.println("Client
is running. ");
try {
System.out.println("Reading
image from disk. ");
img
= ImageIO.read(new File("digital_image_processing.jpg"));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(img,
"jpg", baos);
baos.flush();
byte[] bytes =
baos.toByteArray(); baos.close();
OutputStream out =
soc.getOutputStream();
DataOutputStream dos
= new DataOutputStream(out);
dos.writeInt(bytes.length);
dos.write(bytes, 0,
bytes.length);
System.out.println("Image
sent to server. ");
dos.close();
out.close();
}catch (Exception e)
{ System.out.println("Exception: " + e.getMessage());
soc.close();
}
soc.close();
}
}
Server
import
java.net.*;
import
java.io.*;
import
java.awt.image.*;
import
javax.imageio.*;
import
javax.swing.*;
class Server {
public static void
main(String args[]) throws Exception{
ServerSocket
server=null;
Socket socket;
server=new
ServerSocket(4000);
System.out.println("Server
Waiting for image");
socket=server.accept();
System.out.println("Client connected.");
InputStream
in = socket.getInputStream();
DataInputStream
dis = new DataInputStream(in);
int len =
dis.readInt();
System.out.println("Image
Size: " + len/1024 + "KB"); byte[] data = new
byte[len];
dis.readFully(data);
dis.close();
in.close();
InputStream
ian = new ByteArrayInputStream(data);
BufferedImage
bImage = ImageIO.read(ian);
JFrame f = new
JFrame("Server");
ImageIcon icon = new
ImageIcon(bImage);
JLabel l = new
JLabel();
l.setIcon(icon);
f.add(l);
f.pack();
f.setVisible(true);
}
}
When you run the
client code, following output screen would appear on client side.
No comments:
Post a Comment