Nel programma socket del server sottostante, l'oggetto flusso di byte viene utilizzato per leggere i dati dal client, come menzionato - InputStream in = socket.getInputStream();
public class SingleThreadTCPServer{
ServerSocket serverSocket;
int serverPort = 3333;
public SingleThreadTCPServer(){
try{
serverSocket = new ServerSocket(serverPort);
System.out.println("ServerSocket: " + serverSocket);
}catch(IOException e){
e.printStackTrace();
}
}
private void listen(){
try{
while(true){ //run until you terminate the program
//Wait for connection. Block until a connection is made.
Socket socket = serverSocket.accept();
System.out.println("Socket: " + socket);
InputStream in = socket.getInputStream();
int byteRead;
//Block until the client closes the connection (i.e., read() returns -1)
while((byteRead = in.read()) != -1){
System.out.println((char)byteRead);
}
}
}catch(IOException ex){
ex.printStackTrace();
}
}
public static void main(String[] args){
new SingleThreadTCPServer().listen();
}
}
Avevo passato all'implementazione del metodo getInputStream()
ma non riuscivo a capire il sottotipo effettivo di InputStream
oggetto che è effettivamente restituito da getInputStream()
Tra i sottotipi sottostanti,
Qual è il tipo di flusso effettivo che viene utilizzato dal server per leggere i dati dal client?