Note that there are some explanatory texts on larger screens.

plurals
  1. POMessage returned is null
    primarykey
    data
    text
    <p>Hi i have a problem with my server, everytime i call "dload" the file gets downloaded but i can't use the other commands i have because they get returned as null. Anyone who can see the problem in the code?</p> <p>Server :</p> <pre><code>public class TCPServer { public static void main(String[] args) { ServerSocket server = null; Socket client; // Default port number we are going to use int portnumber = 1234; if (args.length &gt;= 1) { portnumber = Integer.parseInt(args[0]); } // Create Server side socket try { server = new ServerSocket(portnumber); } catch (IOException ie) { System.out.println("Cannot open socket." + ie); System.exit(1); } System.out.println("ServerSocket is created " + server); // Wait for the data from the client and reply boolean isConnected = true; try { // Listens for a connection to be made to // this socket and accepts it. The method blocks until // a connection is made System.out.println("Waiting for connect request..."); client = server.accept(); System.out.println("Connect request is accepted..."); String clientHost = client.getInetAddress().getHostAddress(); int clientPort = client.getPort(); System.out.println("Client host = " + clientHost + " Client port = " + clientPort); // Read data from the client while (isConnected == true) { InputStream clientIn = client.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader( clientIn)); String msgFromClient = br.readLine(); System.out.println("Message received from client = " + msgFromClient); // Send response to the client if (msgFromClient != null &amp;&amp; msgFromClient.equalsIgnoreCase("sum")) { OutputStream clientOut = client.getOutputStream(); PrintWriter pw = new PrintWriter(clientOut, true); Double[] list; list = new Double[5]; String value; int i; try { for (i = 0; i &lt; 5; i++) { pw.println("Input number in arrayslot: " + i); value = br.readLine(); double DoubleValue = Double.parseDouble(value); list[i] = DoubleValue; } if (i == 5) { Double sum = 0.0; for (int k = 0; k &lt; 5; k++) { sum = sum + list[k]; } pw.println("Sum of array is " + sum); } } catch (NumberFormatException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (msgFromClient != null &amp;&amp; msgFromClient.equalsIgnoreCase("max")) { OutputStream clientOut = client.getOutputStream(); PrintWriter pw = new PrintWriter(clientOut, true); Double[] list; list = new Double[5]; String value; int i; try { for (i = 0; i &lt; 5; i++) { pw.println("Input number in arrayslot: " + i); value = br.readLine(); double DoubleValue = Double.parseDouble(value); list[i] = DoubleValue; } if (i == 5) { Arrays.sort(list); pw.println("Max integer in array is " + list[4]); } } catch (NumberFormatException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (msgFromClient != null &amp;&amp; msgFromClient.equalsIgnoreCase("time")) { OutputStream clientOut = client.getOutputStream(); PrintWriter pw = new PrintWriter(clientOut, true); Calendar calendar = GregorianCalendar.getInstance(); String ansMsg = "Time is:, " + calendar.get(Calendar.HOUR_OF_DAY) + ":" + calendar.get(Calendar.MINUTE); pw.println(ansMsg); } if (msgFromClient != null &amp;&amp; msgFromClient.equalsIgnoreCase("date")) { OutputStream clientOut = client.getOutputStream(); PrintWriter pw = new PrintWriter(clientOut, true); Calendar calendar = GregorianCalendar.getInstance(); String ansMsg = "Date is: " + calendar.get(Calendar.DATE) + "/" + calendar.get(Calendar.MONTH) + "/" + calendar.get(Calendar.YEAR); ; pw.println(ansMsg); } if (msgFromClient != null &amp;&amp; msgFromClient.equalsIgnoreCase("c2f")) { OutputStream clientOut = client.getOutputStream(); PrintWriter pw = new PrintWriter(clientOut, true); String celciusValue; boolean ifRead = false; try { pw.println("Input celcius value"); celciusValue = br.readLine(); ifRead = true; if (ifRead == true) { double celcius = Double.parseDouble(celciusValue); celcius = celcius * 9 / 5 + 32; pw.println(celcius); } } catch (NumberFormatException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (msgFromClient != null &amp;&amp; msgFromClient.equalsIgnoreCase("dload")) { OutputStream outToClient = client.getOutputStream(); if (outToClient != null) { File myFile = new File("C:\\ftp\\pic.png"); byte[] mybytearray = new byte[(int) myFile.length()]; FileInputStream fis = new FileInputStream(myFile); BufferedInputStream bis = new BufferedInputStream(fis); try { bis.read(mybytearray, 0, mybytearray.length); outToClient.write(mybytearray, 0, mybytearray.length); outToClient.flush(); outToClient.close(); bis.close(); fis.close(); } catch (IOException ex) { // Do exception handling } System.out.println("test"); } } if (msgFromClient != null &amp;&amp; msgFromClient.equalsIgnoreCase("quit")) { client.close(); break; } // if (msgFromClient != null // &amp;&amp; !msgFromClient.equalsIgnoreCase("bye")) { // OutputStream clientOut = client.getOutputStream(); // PrintWriter pw = new PrintWriter(clientOut, true); // String ansMsg = "Hello, " + msgFromClient; // pw.println(ansMsg); // } // Close sockets if (msgFromClient != null &amp;&amp; msgFromClient.equalsIgnoreCase("bye")) { server.close(); client.close(); break; } msgFromClient = null; } } catch (IOException ie) { } } } </code></pre> <p>Client:</p> <pre><code> import java.io.*; import java.net.*; public class TCPClient { public static void main(String args[]) { boolean isConnected = true; Socket client = null; int portnumber = 1234; // Default port number we are going to use if (args.length &gt;= 1) { portnumber = Integer.parseInt(args[0]); } try { String msg = ""; // Create a client socket client = new Socket("127.0.0.1", 1234); System.out.println("Client socket is created " + client); // Create an output stream of the client socket OutputStream clientOut = client.getOutputStream(); PrintWriter pw = new PrintWriter(clientOut, true); // Create an input stream of the client socket InputStream clientIn = client.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader( clientIn)); // Create BufferedReader for a standard input BufferedReader stdIn = new BufferedReader(new InputStreamReader( System.in)); while (isConnected == true) { System.out .println("Commands: \n1. TIME\n2. DATE\n3. C2F\n4. MAX\n5. SUM\n6. DLOAD\n7. QUIT"); // Read data from standard input device and write it // to the output stream of the client socket. msg = stdIn.readLine().trim(); pw.println(msg); // Read data from the input stream of the client socket. if (msg.equalsIgnoreCase("dload")) { byte[] aByte = new byte[1]; int bytesRead; ByteArrayOutputStream baos = new ByteArrayOutputStream(); if (clientIn != null) { try { FileOutputStream fos = new FileOutputStream("C:\\ftp\\pic.png"); BufferedOutputStream bos = new BufferedOutputStream(fos); bytesRead = clientIn.read(aByte, 0, aByte.length); do { baos.write(aByte, 0, bytesRead); bytesRead = clientIn.read(aByte); } while (bytesRead != -1); bos.write(baos.toByteArray()); bos.flush(); bos.close(); System.out.println("File is successfully downloaded to your selected directory"+ "\n" +"*-----------------*"+ "\n" ); } catch (IOException ex) { System.out.println("Couldn't dowload the selected file, ERROR CODE "+ex); } } }else{ System.out.println("Message returned from the server = " + br.readLine()); } if (msg.equalsIgnoreCase("bye")) { pw.close(); br.close(); break; } } } catch (Exception e) { } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload