android实现tcp客户端多线程发送接受数据代码
时间: 2023-04-08 16:00:34 浏览: 77
我可以回答这个问题。以下是一个简单的Android TCP客户端多线程发送接收数据的代码示例:
```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class TcpClientThread extends Thread {
private String serverIp;
private int serverPort;
private String message;
private OnMessageReceived listener;
public TcpClientThread(String serverIp, int serverPort, String message, OnMessageReceived listener) {
this.serverIp = serverIp;
this.serverPort = serverPort;
this.message = message;
this.listener = listener;
}
@Override
public void run() {
try {
Socket socket = new Socket(serverIp, serverPort);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out.println(message);
String response = in.readLine();
listener.onMessageReceived(response);
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public interface OnMessageReceived {
void onMessageReceived(String message);
}
}
```
使用方法:
```java
TcpClientThread clientThread = new TcpClientThread("192.168.1.100", 1234, "Hello, server!", new TcpClientThread.OnMessageReceived() {
@Override
public void onMessageReceived(String message) {
// 处理服务器返回的消息
}
});
clientThread.start();
```
这个示例中,我们创建了一个TcpClientThread类,它继承自Thread类,用于在后台线程中执行TCP客户端的连接、发送和接收操作。在构造函数中,我们传入服务器的IP地址、端口号、要发送的消息和一个OnMessageReceived接口,用于处理服务器返回的消息。在run()方法中,我们创建了一个Socket对象,使用PrintWriter和BufferedReader对象进行数据的发送和接收。最后,我们通过listener回调接口将服务器返回的消息传递给主线程进行处理。