¿El zócalo del cliente androide, cómo leer datos?

Aquí está mi código completo: el cnx se establece, y estoy enviando datos al servidor, pero no puedo leer nada del servidor …

public class client extends Activity { /** Called when the activity is first created. */ Socket sock; String spliter = "**"; String mobileNbr = "100"; String LastJOKEId = "-1"; String spliterlast = "^^$$"; BufferedReader inFromServer; DataOutputStream outToServer; TextView cnx; TextView output; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setupNetworking(); // Thread readerThread=new Thread(new IncomingReader()); // readerThread.start(); } private void setupNetworking() { try { Log.i("ClientActivity", "Connecting..."); sock = new Socket("192.168.153.221", 9003); cnx = (TextView) findViewById(R.id.textView1); cnx.setText("Network Established."); inFromServer = new BufferedReader(new InputStreamReader(sock.getInputStream())); Log.i("ClientActivity", "Sending command."); outToServer = new DataOutputStream(sock.getOutputStream()); String sentence = "logins" + spliter + mobileNbr + spliter + LastJOKEId + spliterlast; outToServer.writeBytes(sentence + '\n'); Log.i("ClientActivity", "Sent."); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { cnx = (TextView) findViewById(R.id.textView1); cnx.setText("Network failed"); e.printStackTrace(); } } public class IncomingReader implements Runnable { String message; public void run() { try { while ((message = inFromServer.readLine()) != null) { output = (TextView) findViewById(R.id.textView2); output.setText(message); } } catch (IOException e) { output = (TextView) findViewById(R.id.textView2); output.setText("nth to display"); // TODO Auto-generated catch block e.printStackTrace(); } } } } 

  package some; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; public class NetClient { /** * Maximum size of buffer */ public static final int BUFFER_SIZE = 2048; private Socket socket = null; private PrintWriter out = null; private BufferedReader in = null; private String host = null; private String macAddress = null; private int port = 7999; /** * Constructor with Host, Port and MAC Address * @param host * @param port * @param macAddress */ public NetClient(String host, int port, String macAddress) { this.host = host; this.port = port; this.macAddress = macAddress; } private void connectWithServer() { try { if (socket == null) { socket = new Socket(this.host, this.port); out = new PrintWriter(socket.getOutputStream()); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); } } catch (IOException e) { e.printStackTrace(); } } private void disConnectWithServer() { if (socket != null) { if (socket.isConnected()) { try { in.close(); out.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } public void sendDataWithString(String message) { if (message != null) { connectWithServer(); out.write(message); out.flush(); } } public String receiveDataFromServer() { try { String message = ""; int charsRead = 0; char[] buffer = new char[BUFFER_SIZE]; while ((charsRead = in.read(buffer)) != -1) { message += new String(buffer).substring(0, charsRead); } disConnectWithServer(); // disconnect server return message; } catch (IOException e) { return "Error receiving response: " + e.getMessage(); } } } 

// ————————— Utilizar NetClient ——————- —————————–

 NetClient nc = new NetClient(host, port, mac); //mac address maybe not for you nc.sendDataWithString("your data"); String r = nc.receiveDataFromServer(); 

Éste es nuestro cliente androide del zócalo trabaja muy bien con el zócalo del servidor de Python, espera que le ayudará.

 HttpResponse response = m_httpClient.execute( request ); String result = ""; if( response.getStatusLine().getStatusCode() == HttpStatus.SC_OK ) { // open stream InputStream stream = response.getEntity().getContent(); if( stream != null ) { int len = 0; byte[] buf = new byte[ 1024 ]; try { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); while( ( len = stream.read( buf ) ) > 0 ) { outputStream.write( buf, 0, len ); } buf = outputStream.toByteArray(); result = EncodingUtils.getAsciiString( buf ); } catch( IOException e ) { e.printStackTrace(); } finally { stream.close(); } } 
  • 'Permiso denegado' al conectarse al socket unix abstracto
  • Comunicación con Java socket de Android con Socket.IO
  • Android juego multi-jugador a través de la red
  • El arranque del emulador atascó la estructura x86 en AOSP 4.3 con el emulador: Error al conectar con el zócalo '127.0.0.1:1970'
  • Enviar / Recibir archivo / imagen Socket C # Android
  • Android socket de programación ... ¿qué da?
  • Reenvío de puertos Android
  • ¿Cómo asociar la intención de conectividad a socket?
  • Conexión larga de sondeo TCP de Android
  • Crear SSLSocket por SSLSocketFactory con tiempo de espera de conexión establecido
  • ¿Cómo puede mi aplicación Android comunicarse con un daemon nativo?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.