|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Dec 2010
Messaggi: 1
|
[JAVA] server si blocca
ciao a tutti!
stavo provando un semplice programma client server singlethread dove il client invia una stringa al server e il server la rimanda al client...solo che una volta che il client invia la stringa al server quest'ultimo si blocca e continua ad eseguire le operazioni solo quando forzo l'uscita del client con ctrl + c. Questi sono i due codici: CLIENT Codice:
import java.io.*;
import java.net.*;
import java.lang.*;
import java.util.*;
class TCPClient {
public static void main(String argv[]) throws Exception
{
String modifiedSentence;
String riga;
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
Socket clientSocket = new Socket("127.0.0.1", 1304);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
System.out.println("Inserisci stringa : ");
riga = inFromUser.readLine();
System.out.println("La stringa inserita è: " + riga);
outToServer.writeBytes(riga);
System.out.println("Elementi inviati. In attesa del server...");
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
modifiedSentence = inFromServer.readLine();
System.out.println("FROM SERVER: " + modifiedSentence);
clientSocket.close();
} }
Codice:
import java.io.*;
import java.net.*;
import java.util.*;
import java.lang.*;
class TCPServer {
public static void main(String argv[]) throws Exception
{
String clientSentence; String stringa;
ServerSocket welcomeSocket = new ServerSocket(1304);
while(true) {
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
System.out.println("Connessione stabilita..."); /*qui si blocca*/
clientSentence = inFromClient.readLine();
stringa = clientSentence;
System.out.println("E' stata ricevuta la seguente stringa: " + stringa);
outToClient.writeBytes(stringa);
connectionSocket.close();
}
}
}
CLIENT: Inserisci stringa : ciao La stringa inserita è: ciao Elementi inviati. In attesa del server... ^C SERVER: Connessione stabilita... E' stata ricevuta la seguente stringa: ciao (questo lo fa solo dopo che ho premuto ctrl+c sul client) Exception in thread "main" java.net.SocketException: Broken pipe at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) at java.net.SocketOutputStream.write(SocketOutputStream.java:132) at java.io.DataOutputStream.writeBytes(DataOutputStream.java:276) at TCPServer.main(server2.java:28) Qualcuno sa dirmi come posso risolvere??? grazie mille in anticipo |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:28.



















