Mega Code Archive

 
Categories / Java / Network Protocol
 

Write Double Using Sockets

// WriteDoubleUsingSockets - Client side that writes some objects to a stream // // Copyright (C) 1996 by Rinaldo Di Giorgio <rinaldo@digiorgio.com>.  All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // 1. Redistributions of source code must retain the above copyright //    notice, this list of conditions and the following disclaimer. // 2. Redistributions in binary form must reproduce the above copyright //    notice, this list of conditions and the following disclaimer in the //    documentation and/or other materials provided with the distribution. // // THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE // ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. import java.applet.Applet; import java.awt.Label; import java.io.DataOutputStream; import java.io.ObjectOutput; import java.io.ObjectOutputStream; import java.net.Socket; import java.util.Date; /**  * Write some objects over the network to a remote server that reads the stream  * and procceds to save the objects to disk.  */ public class WriteDoubleUsingSockets extends Applet {   DataOutputStream os = null;   ObjectOutput s = null;   int PortNumber = 2000;   String ServerName = "traveler";   /**    * Set the server and port name    */   public void initMain(String s, int p) {     ServerName = s;     PortNumber = p;     init();   }   public void init() {     Date d = new Date();     // Get the portnumber and servername and allow to be called from a     // java main program also     try {       String param;       param = getParameter("PortNumber");       if (param != null)         PortNumber = Integer.parseInt(param);       param = getParameter("ServerName");       if (param != null)         ServerName = param;     } catch (NullPointerException e) { // Must be called from a main ignore     }     try {       Socket skt = new Socket(ServerName, PortNumber);       os = new DataOutputStream(skt.getOutputStream());     } catch (Exception e) {       Label l = new Label(e.toString());       add(l);       System.out.println(e);       return;     }     try {       s = new ObjectOutputStream(os);     } catch (Exception e) {       System.out.println(e);       System.out.println("Unable to open stream as an object stream");     }     try {       long startTime = System.currentTimeMillis();       for (int i = 0; i < 25; i++) {         s.writeObject(new Double(i));       }       os.close();       long endTime = System.currentTimeMillis() - startTime;       Label l = new Label("Writing 25 doubles server took: " + new Long(endTime).toString()           + " milliseconds.");       add(l);       System.out.println("Object written");     } catch (Exception e) {       System.out.println(e);       System.out.println("Unable to write Objects");     }   }   // //////////////////////////////////////////////////////////////////////////   // Example of an applet and a main sharing code and be parameter   // driven.   // //////////////////////////////////////////////////////////////////////////   public static void main(String args[]) {     WriteDoubleUsingSockets showSavingAClassNet = new WriteDoubleUsingSockets();     if (args.length < 2) {       System.out.println("Usage: ServerName PortNumber");       System.exit(0);     } else {       String ServerName = new String(args[0]); // Notice local scope of                                                 // ServerName and PortNumber       int PortNumber = Integer.parseInt(args[1]);       showSavingAClassNet.initMain(ServerName, PortNumber);     }   } }