【发布时间】:2016-10-22 20:46:52
【问题描述】:
您好,我的应用程序 java 出现错误,此应用程序将值从客户端发送到服务器,服务器对收到的值执行 2 的幂,并将其返回给客户端,一切正常,但它只在之后工作一次一旦服务器不再接收值,它就会播放,我无法理解问题是什么,我该如何解决这个问题?代码如下
客户:
import java.io.*;
import java.net.*;
public class Client{
public static void main(String args[]){
try{
//controllo che i valori siano corretti
/* if(args.lenght != 2){
System.out.println(" Errore la sintassi ");
System.exit(1);
}
*/
String host=""+args[0];
int port=Integer.parseInt(args[1]);
// System.out.println("\n Scriverò sul socket "+host);
// System.out.println("\n Porta: "+port);
//leggo valori da input
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
System.out.println("\n Inserisci un valore (CLIENT): ");
String lettura=input.readLine();
while(!lettura.equals("fine")){
System.out.println("\n Inserisci un valore (CLIENT): ");
Socket s=new Socket(host,port);
PrintWriter output=new PrintWriter(s.getOutputStream());
output.println(lettura);
output.flush();
//attendo dal server il risultato
BufferedReader insok = new BufferedReader(new InputStreamReader(s.getInputStream()));
String lettsock=insok.readLine();
//System.out.println(" Ho ricevuto dal server il valore "+insok.readLine());
System.out.println("\n Ho ricevuto dal server : "+lettsock);
lettura=input.readLine();
}
// System.out.println("\n Client Terminato con successo \n");
//chiusura input
input.close();
}
catch(Exception ex){
System.out.println("\n Errore: " + ex);
System.exit(2);
}
}
}
服务器:
import java.io.*;
import java.net.*;
public class Server{
static final int PORT = 1024;
public static void main(String args[]){
try{
ServerSocket ss=new ServerSocket(PORT);
while(true) {
Socket ns = ss.accept();
BufferedReader networkIn = new BufferedReader(new InputStreamReader(ns.getInputStream()));
PrintWriter networkOut=new PrintWriter(ns.getOutputStream());
String line;
System.out.println("\n Attendo valori \n ");
while ((line = networkIn.readLine()) != null) {
System.out.println("Ricevuto: " + line);
try{
int number=Integer.parseInt(line);
number=number*number;
networkOut.println(number);
networkOut.flush();
}
catch(Exception ex){
System.out.println("\n Non mi hai inviato un numero \n");
}
}
ns.close();
}
}
catch(Exception ex){
System.out.println("\n Errore Server: "+ex);
System.exit(2);
}
}
}
【问题讨论】:
标签: java sockets networking