2012-09-19 1 views
1

Je réalise une communication avec le serveur client. J'ai été à la fois connecté via URLConnection classes.Communication du serveur Web du client de bureau

Maintenant, j'essaie d'envoyer des informations de connexion au serveur, le serveur vérifiera si les informations sont correctes sinon il me demandera de me connecter à nouveau et pour ce scénario, supposons que la connexion a échoué. Mais après avoir reçu la réponse du serveur lorsque je tente à nouveau d'envoyer les informations de connexion Je reçois

java.net.ProtocolException: Cannot write output after reading input. 

Voici mon code:

URL url = new URL(uniRL); 

java.net.URLConnection connection = url.openConnection(); 
connection.setAllowUserInteraction(true); 
connection.setDoOutput(true); 

while(true){ 
    System.out.println("Enter 1-login , 2-Exit"); 
useroption = input.nextLine(); 
numOption = Integer.parseInt(useroption); 
if(numOption == 1){ 
    OutputStreamWriter writer = new OutputStreamWriter(
      connection.getOutputStream()); 
    user_login = login(); 
    writer.write(user_login[0]+"@"); 
    writer.write(user_login[1]); 
    writer.flush(); 
    //out.close(); 
    BufferedReader in = new BufferedReader(
      new InputStreamReader(
        connection.getInputStream())); 
    while ((tempString = in.readLine()) != null) { 
     decodedString = tempString; 
     //System.out.println(decodedString); 
     //System.out.println(decodedString.equalsIgnoreCase("unknown user")); 
    } 
    in.close(); 
    if((decodedString.equalsIgnoreCase("unknown user"))){continue;} 
    else{break;} 
} 
+0

Quelle est la ligne où vous obtenez cette exception? La publication de la trace d'exception aiderait. – Santosh

+0

Je reçois une exception lorsque la boucle passe à sa deuxième itération. et essaie d'écrire quelque chose pour la deuxième fois. –

Répondre

0

Lorsque vous appelez in.close(), vous fermez effectivement le flux utilisé par la connexion URL. Vous devez appeler à nouveau url.openConnection() pour rouvrir le flux ...

+0

frère merci pour l'aide je l'ai essayé sans in.close(). ça ne marche toujours pas. Je reçois même exception .... –

+0

Je ne sais pas pourquoi vous avez choisi 'URLConnection' pour ce faire, je ferais probablement une connexion' Socket' droite, personnellement – MadProgrammer

+0

pouvez-vous me donner un bon exemple/lien pour utiliser socket avec bureau (client) et serveur web? Ce sera vraiment utile .. Merci –