连接到客户端后,我的服务器程序无法打印

时间:2018-05-12 09:30:17

标签: java

我正在使用eclipse在我的mac上运行java项目 在服务器能够连接到客户端之前,它正常打印。 但是,在我运行我的客户端程序并成功连接到我的服务器之后,我的服务器根本无法打印任何内容。(但我认为我的服务器仍然可以工作,因为它可以执行" DataOutputStream"( line:25,26)但是客户端错误地收到了它) 这是我的服务器:

public class Server {
    public static void main(String[] args){
        int producta=10;
        int productb=8;
        try{
            System.out.println("java Server > A:10 , B:8 , <12345>");
            ServerSocket serverSock = new ServerSocket(12345);
            Socket connectionSock = serverSock.accept( );
            BufferedReader clientInput = new BufferedReader(
            new InputStreamReader(connectionSock.getInputStream( )));
            DataOutputStream clientOutput = new DataOutputStream( connectionSock.getOutputStream( ));
            System.out.println("java Server > Connection made, waiting for client " + "to send their ptoduct number.");
            System.out.println("test");
            clientOutput.write(producta);
            clientOutput.write(productb);
            int clientnum1= clientInput.read();//read client productA
            producta-=clientnum1;
            int clientnum2=clientInput.read();//read client product B
            productb-=clientnum2;
            clientOutput.writeInt(producta);
            clientOutput.writeInt(productb);

            clientOutput.close( ); 
            clientInput.close( ); 
            connectionSock.close( ); 
            serverSock.close( );
        }
        catch(IOException e){
            System.out.println(e.getMessage());
            System.out.println("java Server > Socket連線有問題");
        }
    }
}

这是我的客户:

public class Client {
    public static void main(String[] args){
        Scanner scan=new Scanner(System.in);
        int a=0;
        int b=0;
        int clientnum=0;
        try{        

            String hostname = "localhost"; 
            int port = 12345;
            System.out.println("java client > Connecting to server on port " + port); 
            System.out.println("Resouce requirement:<A:0 , B:0>");
            System.out.print("java client > number a:");
            a=scan.nextInt();
            System.out.print("java client > number b:");
            b=scan.nextInt();
            Socket connectionSock = new Socket("127.0.0.1", port);
            BufferedReader serverInput=null;
            DataOutputStream serverOutput=null;
            if(connectionSock!=null){
                clientnum++;
                serverInput = new BufferedReader(
                        new InputStreamReader(connectionSock.getInputStream( )));
                serverOutput = new DataOutputStream( connectionSock.getOutputStream( ));
                System.out.println("java client > Connection made, sending number.<A:"+a+",B:"+b+">"); 
                int serverA=serverInput.read();//read the server prodduct b number
                System.out.println(serverA);
                int serverB=serverInput.read();//read the server product a number
                serverOutput.write(a);
                serverOutput.write(b);
                serverA=serverInput.read();
                serverB=serverInput.read();
                System.out.println(serverA);
                System.out.println(serverB);            
            }//end if
            else{
                System.out.println("java client > [client"+clientnum+"]:resource insufficient!Error");
            }//end else
            System.out.println("java client > Waiting for reply."); 
            serverOutput.close( ); 
            serverInput.close( ); 
            connectionSock.close( );
        }//end try
        catch (IOException e){
            System.out.println(e.getMessage( )); 
            System.out.println("client's connecting probleming");
        }//end catch
    }//end main
}//end class

这是运行的结果(服务器行:24,25didn&#39; t打印出来)

如何打印出服务器专线24,25 ????

enter image description here

0 个答案:

没有答案