Android Client / Java Server Communication, ne peut pas recevoir de données du serveur

J’ai un problème pour renvoyer quelque chose du serveur au client. Ce code envoie uniquement des données du client Android au serveur et je ne peux pas le faire renvoyer quelque chose du serveur au client Android. J’ai essayé de mettre le lecteur Inputstream dans le code client et cela ne semble pas fonctionner. et voici le code: Code client:

package com.lakj.comspace.simpletextclient; import java.io.IOException; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; /** * This is a simple Android mobile client * This application read any ssortingng massage typed on the text field and * send it to the server when the Send button is pressed * Author by Lak J Comspace * */ public class SlimpleTextClientActivity extends Activity { private Socket client; private PrintWriter printwriter; private EditText textField; private Button button; private Ssortingng messsage; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_slimple_text_client); textField = (EditText) findViewById(R.id.editText1); // reference to the text field button = (Button) findViewById(R.id.button1); // reference to the send button // Button press event listener button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { messsage = textField.getText().toSsortingng(); // get the text message on the text field textField.setText(""); // Reset the text field to blank SendMessage sendMessageTask = new SendMessage(); sendMessageTask.execute(); } }); } private class SendMessage extends AsyncTask { @Override protected Void doInBackground(Void... params) { try { client = new Socket("10.0.2.2", 4444); // connect to the server printwriter = new PrintWriter(client.getOutputStream(), true); printwriter.write(messsage); // write the message to output stream printwriter.flush(); printwriter.close(); client.close(); // closing the connection } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.slimple_text_client, menu); return true; } } 

Code serveur:

 package com.lakj.comspace.simpletextserver; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; /** * This is a simple server application. This server receive a ssortingng message * from the Android mobile phone and show it on the console. * Author by Lak J Comspace */ public class SimpleTextServer { private static ServerSocket serverSocket; private static Socket clientSocket; private static InputStreamReader inputStreamReader; private static BufferedReader bufferedReader; private static Ssortingng message; public static void main(Ssortingng[] args) { try { serverSocket = new ServerSocket(4444); // Server socket } catch (IOException e) { System.out.println("Could not listen on port: 4444"); } System.out.println("Server started. Listening to the port 4444"); while (true) { try { clientSocket = serverSocket.accept(); // accept the client connection inputStreamReader = new InputStreamReader(clientSocket.getInputStream()); bufferedReader = new BufferedReader(inputStreamReader); // get the client message message = bufferedReader.readLine(); System.out.println(message); inputStreamReader.close(); clientSocket.close(); } catch (IOException ex) { System.out.println("Problem in message reading"); } } } } 

Les sockets sont “bidirectionnelles”. Vous devez getInputStream côté client et getOutputStream côté serveur sur le même port / socket. Ajouter au client:

 client = new Socket(IP, PORT); // second connection to server inputStreamReader = new InputStreamReader(client.getInputStream()); bufferedReader = new BufferedReader(inputStreamReader); //get the client message message = bufferedReader.readLine(); inputStreamReader.close();           socket.close();  //closing the connection 

& To server:

 printWriter = new PrintWriter(clientSocket.getOutputStream(), true); printWriter.write("Returned back from server to client \n"); //write the message to output stream printWriter.flush();                printWriter.close(); inputStreamReader.close();        clientSocket.close();