Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / April 2007

Tip: Looking for answers? Try searching our database.

Question: XML file communication between server and client

Thread view: 
Fengyuan - 08 Apr 2007 06:09 GMT
Hi, All

I have created a random array of data and transferred them to XML file
as my random noise file. Now, I would like to transfer the noise from
my client to the server through TCP socket connection. I referred to
the KnockKnock example in the tutorial on java.sun.com.

Here is the code of the my client, I don't know how to modify the part
I noted by //----------- so that I can transfer my noise.xml file.

public class Client {
    public static void main(String[] args) throws IOException {

       Socket serverSocket = null;
       PrintWriter out = null;
       BufferedReader in = null;
// Set up the connect to server
       try {
           serverSocket = new Socket("ServerName", 123);
           //server name and port number on the server
           //client's socket is bound to any available local port
           out = new PrintWriter(serverSocket.getOutputStream(),
true);
           in = new BufferedReader(new
InputStreamReader(serverSocket.getInputStream()));
       } catch (UnknownHostException e) {
           System.err.println("Don't know about host: ServerName.");
           System.exit(1);
       } catch (IOException e) {
           System.err.println("Couldn't get I/O for the connection
to: ServerName.");
           System.exit(1);
       }

       //Communication between client and server
       //??????????????????????????????????????
       //How to implement my experiment: Write the rand number in XML
file I generated to server?

       //----------------------------------------------------------------------------
       BufferedReader stdIn = new BufferedReader(new
InputStreamReader(System.in));
       String fromServer;
       String fromUser;

       while ((fromServer = in.readLine()) != null) {
           System.out.println("Server: " + fromServer);
           if (fromServer.equals("Bye."))
               break;

           fromUser = stdIn.readLine();
       if (fromUser != null) {
               System.out.println("Client: " + fromUser);
               out.println(fromUser);
       //-----------------------------------------------------------------------------
       }
       }

       //Clean all the ports
       out.close();
       in.close();
       stdIn.close();
       serverSocket.close();
   }
}

I help someone can give me some idea and help me out. Thank you.

Fengyuan (Thomas)
SadRed - 08 Apr 2007 06:30 GMT
> Hi, All
>
[quoted text clipped - 66 lines]
>
> Fengyuan (Thomas)

If the only expected functionality of your client is
sending an XML file to the server. The 'in' and 'stdIn'
in your current code are useless, aren't they?
(1)Read each line from your XML file
(2)Send the line to the server in a while loop.
Fengyuan - 08 Apr 2007 17:25 GMT
> > Hi, All
>
[quoted text clipped - 72 lines]
> (1)Read each line from your XML file
> (2)Send the line to the server in a while loop.

Thank you for the reply. How can I read each line from my XML file
into the client and then send to the server? Do I need XML parser at
client side or the parser at server side? I am new to Java, hopefully
someone can help me out. Thanks

Fengyuan (Thomas)
Joshua Cranmer - 08 Apr 2007 19:46 GMT
> Thank you for the reply. How can I read each line from my XML file
> into the client and then send to the server? Do I need XML parser at
> client side or the parser at server side? I am new to Java, hopefully
> someone can help me out. Thanks

To read a line from a file, use something like this:

BufferedReader fin = new BufferedReader(new FileReader("filename.xml"));
String line = fin.readLine();

To write this line to the server, use:
out.println(line);

The easiest way to send an entire file this way is to use this loop:
BufferedReader fin = new BufferedReader(new FileReader("filename.xml"));
String line;
while ((line = fin.readLine()) != null) {
    out.println(line);
}

If you want to parse the XML file, then yes, you will need to use an XML
parser at the server side (but not the client).

For further information, refer to the javadocs at
http://java.sun.com/j2se/1.5.0/docs/api/index.html or
http://java.sun.com/j2se/1.4.2/docs/api/index.html depending on your
version.


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.