如何解决输出服务器问题[客户端服务器JAVA]
嗨,我正在尝试执行此练习: 定义一个套接字-基于客户端服务器的应用程序。该服务器必须能够同时响应多个客户端。 服务器生成一个正整数值N,用于每个连接的客户端。 在连接时,客户端随机生成一个整数M。 然后,客户端发送M个服务器字符串:“ string1”,“ string2”,...“ stringM”。 传输以字符串“ BYE”的发送结束。 每当一个客户端完成传输时,服务器都会编写一个视频,记录从所有客户端接收到的长度为N的字符串的数目。
假设没有其他错误,问题是当我第一次运行服务器时,它在输出中不返回任何内容... 你能帮我吗??
package clientEsame;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Random;
import java.util.logging.Level;
import java.util.logging.Logger;
public class ClientEsame {
public static void main(String[] args) {
int M = (int) (Math.random() * 100) + 10;
try (Socket server = new Socket("localhost",5000);
PrintWriter out = new PrintWriter(server.getOutputStream(),true);) {
for (int i = 0; i < M; i++) {
out.println("stringa"+i);
}
out.println("BYE");//la trasmissione termina inviando la stringa bye
out.flush();
} catch (IOException ex) {
Logger.getLogger(ClientEsame.class.getName()).log(Level.SEVERE,null,ex);
}
}
}
////////////////////////
package serveresame;
import java.io.BufferedReader;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;
public class ServerEsame {
private static final int PORTA=5000;
/**
*
*/
public static int N = (int) (Math.random() * 100) + 10;
/*
* @param args the command line arguments
*/
public static void main(String[] args) {
ServerSocket server;
try {
server = new ServerSocket(5000);
//System.out.println("Server creato,in attesa di un client");
while (true) {
//System.out.println("In attesa di un client");
Socket s = server.accept();
//System.out.println("Client collegato");
ThreadEsame t = new ThreadEsame(s);
t.start();
}
} catch (IOException ex) {
Logger.getLogger(ServerEsame.class.getName()).log(Level.SEVERE,ex);
}
}
}
//////////////////////////////////////////////////
package serveresame;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
public class ThreadEsame extends Thread {
private final Socket client;
// private final int N;
public ThreadEsame(Socket client) {
this.client = client;
}
@Override
public void run() {
try {
BufferedReader in;
in = new BufferedReader( new InputStreamReader(client.getInputStream()));
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String letto;
while( !"BYE".equals(letto= stdIn.readLine()) ) { //la lettura non termina finche non compare BYE
confronto(letto);
}
} catch (IOException ex) {
Logger.getLogger(ThreadEsame.class.getName()).log(Level.SEVERE,ex);
}
if (client != null) {
try {
client.close();
} catch (IOException ex) {
Logger.getLogger(ThreadEsame.class.getName()).log(Level.SEVERE,ex);
}
}
}
public void confronto(String t){
int acc=0;
if(ServerEsame.N == t.length()){
acc++;
System.out.println("Ci sono"+acc+"stringhe di lunghezza"+ServerEsame.N);
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。