Win a copy of Cross-Platform Desktop Applications: Using Node, Electron, and NW.js this week in the JavaScript forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

sending images over server socket to browser page  RSS feed

Mak klk
Posts: 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello All,

I am writing simple web server which accepts requests on socket and sends html text response.
I am receiving requests from browser on the specified port. like http://localhost:5555
Now I also want to send small gif files and want to display them on the browser page. The resulting html page will display text combined with gif images at specific positions.
I am using java ImageIO API for the same. However I am not getting the desired page.

Here is my sample code on Server side: I am listening to requests on serverSocket 5555

PrintWriter socketWriter = new PrintWriter(socket.getOutputStream());
socketWriter.println("HTTP/1.1 " + 200 + " OK");
socketWriter.println("Server: ICS HTTP Server");
socketWriter.println("Date: " + (new Date()));
socketWriter.println("Content-type: text/html");
socketWriter.println("Content-type: image/jpeg");
socketWriter.println("Content-type: image/gif");

socketWriter.println("Content-Length: " + output.length());

//String output is much more with combination of havascript,html and html tables


String filePath = c:\images\+ "button1.gif";
File f1 = new File(filePath);

ImageInputStream imgStream1 = ImageIO.createImageInputStream(f1);
long size = imgStream1.length();

BufferedImage bufferedImage1 =;
boolean success = ImageIO.write(bufferedImage1,"gif",socket.getOutputStream());

socket = null;

I will appreciate your help and thanks in advance.
Ernest Friedman-Hill
author and iconoclast
Posts: 24217
Chrome Eclipse IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
To answer your immediate question: don't do anything so elaborate as that. The server shouldn't care what the content of the image file is. Just use FileInputStream to read the bytes from the file, and send those bytes unchanged over the connection.

Now, to answer the question you should have asked: why are you writing your own web server, rather than using an existing one? HTTP is actually pretty complicated if you include all the conventions and pseudostandards that have emerged over the years. There are plenty of different webservers to choose from. For a smallish one that's easy to embed in your own programs, try Jetty.

  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!