Client/ Server system that adds a stream of integers
Hi all,
i currently have a client/ server system that receives input from the client and can add two integers together that are inputted in the command prompt.
However i cannot get the system to add more than two numbers that are inputted without declaring multiple variables.
I now want the server to add together a stream of inputted integers that are entered in the command prompt. The code is as follows:
Server main class:
Code:
package server;
import java.io.*;
import java.net.*;
/**
*
* @author Billy
*/
public class Main
{
private static void sendResponse(Socket socket) throws IOException, InterruptedException
{
InputStream instream = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(instream, "US-ASCII");
BufferedReader inBuf = new BufferedReader(isr);
OutputStream outstream = socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(outstream, "US-ASCII");
PrintWriter out = new PrintWriter(osw);
String s = inBuf.readLine();
int num1 = Integer.parseInt (s);
s = inBuf.readLine ();
int num2 = Integer.parseInt (s);
int sum = num1 + num2;
out.println("Hello, " + num1 + "+" + num2 + "=" + sum);
System.err.println("got message: " + s);
Thread.sleep(500);
out.close();
}
public static void main(String[] args) throws Exception
{
int port = 55555;
ServerSocket serverSocket = new ServerSocket(port);
System.err.println("server starting, using port " + port);
for ( ; ; )
{
Socket socket = serverSocket.accept();
System.err.println("socket accepted: " + socket.toString());
socket.setSoLinger(true, 1);
sendResponse(socket);
}
}
}
Client Main class:
Code:
package client;
import java.io.*;
import java.net.*;
/**
*
* @author Billy
*/
public class Main
{
public static void main(String[] args) throws Exception
{
String serverName = "localhost";
int serverPort = 55555;
String num1 = "";
String num2 = "";
if (args.length > 0)
{
serverName = args[0];
}
if (args.length > 1)
{
num1 = args[1];
num2 = args[2];
}
InetAddress inetAddress = InetAddress.getByName(serverName);
Socket socket = new Socket(inetAddress, serverPort);
OutputStream outstream = socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(outstream, "US-ASCII");
PrintWriter out = new PrintWriter(osw);
InputStream instream = socket.getInputStream();
InputStreamReader isw = new InputStreamReader(instream, "US-ASCII");
BufferedReader inBuf = new BufferedReader(isw);
out.println(num1);
out.println(num2);
out.flush();
socket.shutdownOutput();
for (String s = inBuf.readLine(); s != null; s = inBuf.readLine())
{
System.out.println(String.format("from server: %s", s));
}
}
}
If anyone could help me out that would be great
Many Thanks - Billy