输出服务器问题[客户端服务器JAVA]
嗨,我正在做这个练习: 定义一个基于socket的客户端-服务器应用程序。服务器必须能够同时响应多个客户端。 服务器生成一个正整数值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, null, 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, null, ex);
}
if (client != null) {
try {
client.close();
} catch (IOException ex) {
Logger.getLogger(ThreadEsame.class.getName()).log(Level.SEVERE, null, 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);
}
}
}
共 (0) 个答案