Ciao a tutti, ho provato a realizzare un client ed un server con protocollo tcp: il client invia un intero al server che somma uno al numero ricevuto e lo rispedisce al server ma il programma non funziona, nel senso che il server non riceve nulla. Il problema riguarda l'ultimo metodo readLine del client...come posso risolverlo? Ho inserito anche metodi flush(), ma non ho risolto nulla...![]()
Ecco il client:
Ecco il server:codice:import java.io.*; import java.net.*; class Client{ public static void main(String argv[]) throws Exception { String num; String somma; Socket clientSocket = new Socket("localhost", 6789); DataOutputStream outToServer= new DataOutputStream(clientSocket.getOutputStream()); BufferedReader inFromUser=new BufferedReader(new InputStreamReader(System.in)); BufferedReader inFromServer=new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); System.out.println("Inserire un intero: "); num=inFromUser.readLine(); outToServer.writeBytes(num); outToServer.flush(); //qui c'è qualcosa che non va somma=inFromServer.readLine(); System.out.println(somma); clientSocket.close(); } }
codice:import java.io.*; import java.net.*; class Server{ public static void main(String argv[]) throws Exception { String num; String somma; ServerSocket welcomeSocket = new ServerSocket(6789); while(true) { Socket connectionSocket = welcomeSocket.accept(); System.out.println("server connesso"); BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); DataInputStream(connectionSocket.getInputStream()); DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); num=inFromClient.readLine(); System.out.println("Il numero ricevuto dal client è : "+ num); //calcolo somma +1 int sommaint=Integer.parseInt(num)+1; somma =Integer.toString(sommaint); System.out.println("La somma incrementata di uno è: "+ somma); outToClient.writeBytes(somma); outToClient.flush(); connectionSocket.close(); } } }

Rispondi quotando