Created
July 11, 2024 18:31
-
-
Save cristiancorreau/35067ca82fb01bd8d0205563dc9db906 to your computer and use it in GitHub Desktop.
Ejemplo AsyncTask Socket
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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