我正在使用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 ????