Skip to content

Instantly share code, notes, and snippets.

@cristiancorreau
Created July 11, 2024 18:31
Show Gist options
  • Save cristiancorreau/35067ca82fb01bd8d0205563dc9db906 to your computer and use it in GitHub Desktop.
Save cristiancorreau/35067ca82fb01bd8d0205563dc9db906 to your computer and use it in GitHub Desktop.
Ejemplo AsyncTask Socket
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
public class ExampleActivity extends AppCompatActivity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
// Ejecutar AsyncTask
new SocketAsyncTask().execute("172.172.172.172", "12345", "Hello, Server!");
}
private class SocketAsyncTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
String serverIp = params[0];
int serverPort = Integer.parseInt(params[1]);
String messageToSend = params[2];
StringBuilder response = new StringBuilder();
try (Socket socket = new Socket(serverIp, serverPort);
OutputStream outputStream = socket.getOutputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {
// Enviar mensaje al servidor
outputStream.write(messageToSend.getBytes());
outputStream.flush();
// Leer la respuesta del servidor
String line;
while ((line = reader.readLine()) != null) {
response.append(line).append('\n');
}
} catch (Exception e) {
e.printStackTrace();
return "Error: " + e.getMessage();
}
return response.toString();
}
@Override
protected void onPostExecute(String result) {
// Actualiza la UI con el resultado
textView.setText(result);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment