Results 1 to 3 of 3
  1. #1
    Join Date
    Feb 2011
    Posts
    16
    Rep Power
    0

    Default Code Won't Execute, Help Apreciated

    I'm making a Java download centre, the client can view a description of 3 items as provided by the server. I have a protocol to control what happens. The code however, won't compile properly. Here is what I've done so far. I believe the problem lies in the protocol program.

    CLIENT

    Java Code:
    import java.net.*;
    import java.io.*;
    
    public class Client {
    
        public static void main(String[] args) throws IOException {
    
            Socket dcSocket = null;
            PrintWriter out = null;
            BufferedReader in = null;
    
            try {
                dcSocket = new Socket("localhost", 3330);
                out = new PrintWriter(dcSocket.getOutputStream(), true);
                in = new BufferedReader(new InputStreamReader(dcSocket.getInputStream()));
            } catch (UnknownHostException e) {
                System.err.println("Don't know about host");
                System.exit(1);
            } catch (IOException e) {
                System.err.println("Could not get IO for connection");
                System.exit(1);
            }
    
            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);
                }
    
            }
            out.close();
            in.close();
            stdIn.close();
            dcSocket.close();
        }
    }
    SERVER

    Java Code:
    import java.net.*;
    import java.io.*;
    
    public class Server {
    
        public static void main(String[] args) throws IOException {
    
            ServerSocket serverSocket = null;
            try {
                serverSocket = new ServerSocket(3330); // Creates new ServerSocket object to listen on a specific port 
            } catch (IOException e) {
                System.err.println("Message 1");
                System.exit(1);
            }
    
            Socket clientSocket = null;
            try {
                clientSocket = serverSocket.accept(); // Accepts connection from a client 
            } catch (IOException e) {
                System.out.println("Message 2");
                System.exit(-1);
            }
    
            // Opens readers and writers on socket input and output stream
            PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
            BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
            String inputLine, outputLine;
    
            // Begin conversation with client program, creates protocol
            DownloadProtocol dp = new DownloadProtocol();
            outputLine = dp.processInput(null);
            out.println(outputLine);
    
            // Server reads and writes to socket 
            while ((inputLine = in.readLine()) != null) {
                outputLine = dp.processInput(inputLine);
                out.println(outputLine);
                if (outputLine.equals("N")) {
                    break;
                }
            }
            
            out.close();
            in.close(); 
            clientSocket.close();
            serverSocket.close();
        }
    }
    PROTOCOL

    Java Code:
    import java.net.*;
    import java.io.*;
    
    public class DownloadProtocol {
    
        private int state = WAITING;
        private static final int WAITING = 1;
        private static final int REPLY = 2;
        private static final int CHOICE = 3;
    
        public String processInput(String theInput) {
            String theOutput = null;
    
            switch (state) {
                case 1: {
                    theOutput = "Terms of reference. Do you accept? Y or N";
                    if (theInput.equalsIgnoreCase("Y")) {
                        state = REPLY;
                    }
                }
                case 2: {
                    theOutput = "1. computer program 2. picture 3. e-book";
                    state = CHOICE;
                    int i = Integer.parseInt(theInput);
                    switch (i) {
                        case 1: {
                            theOutput = "The program displays a message";
                            break;
                        }
                        case 2: {
                            theOutput = "The book is about";
                            break;
                        }
                        case 3: {
                            theOutput = "The picture shows";
                            break;
                        }
                        default: {
                            theOutput = "Invalid choice";
                            break;
                        }
                    }
    
                }
            }
            return theOutput;
        }
    }

  2. #2
    Join Date
    Feb 2011
    Posts
    16
    Rep Power
    0

    Default Re: Code Won't Execute, Help Apreciated

    Netbeans errors

    run:
    Exception in thread "main" java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream. java:168)
    at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.j ava:264)
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.ja va:306)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:1 58)
    at java.io.InputStreamReader.read(InputStreamReader.j ava:167)
    at java.io.BufferedReader.fill(BufferedReader.java:13 6)
    at java.io.BufferedReader.readLine(BufferedReader.jav a:299)
    at java.io.BufferedReader.readLine(BufferedReader.jav a:362)
    at Version_1.Client.main(Client.java:38)
    Java Result: 1
    BUILD SUCCESSFUL (total time: 0 seconds)

    run:
    Exception in thread "main" java.lang.NullPointerException
    at Version_1.DownloadProtocol.processInput(DownloadPr otocol.java:25)
    at Version_1.Server.main(Server.java:39)
    Java Result: 1
    BUILD SUCCESSFUL (total time: 4 seconds)

  3. #3
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,331
    Rep Power
    25

    Default Re: Code Won't Execute, Help Apreciated

    Please only post one thread per problem.
    This is appears the same as
    Java Help Much Apreciated

Similar Threads

  1. Java Help Much Apreciated
    By danielinthebed in forum Advanced Java
    Replies: 22
    Last Post: 01-01-2012, 06:58 PM
  2. Problem! Help Apreciated
    By danielinthebed in forum Networking
    Replies: 1
    Last Post: 02-20-2011, 03:00 PM
  3. Unable to execute my code can u plz help me out
    By Gayathri12 in forum New To Java
    Replies: 6
    Last Post: 07-21-2010, 08:28 AM
  4. Execute code from ActionListener
    By Viola in forum New To Java
    Replies: 3
    Last Post: 05-29-2010, 05:10 PM
  5. error stack when I try to execute my code
    By paty in forum New To Java
    Replies: 1
    Last Post: 08-02-2007, 08:32 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •