Question: XML file communication between server and client

F

Fengyuan

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)
 
S

SadRed

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)

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.
 
F

Fengyuan

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)

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.

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)
 
J

Joshua Cranmer

Fengyuan said:
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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,189
Members
46,736
Latest member
zacharyharris

Latest Threads

Top