有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

输出服务器问题[客户端服务器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) 个答案