public class SendDataTCPThread implements Runnable {
private int mPort;
private String mIp;
private Socket mSocket;
public SendDataTCPThread(int port, String ip) {
mPort = port;
mIp = ip;
}
@Override
public void run() {
try {
mSocket = new Socket();
InetSocketAddress socketAddress = new InetSocketAddress(mIp, mPort);
mSocket.connect(socketAddress, 5 * 1000);
} catch (IOException e) {
e.printStackTrace();
}
}
public void send(String mData) {
boolean connected = mSocket.isConnected();
if (connected) {
ConnectSucess(mData);
}
}
private void ConnectSucess(String mData) {
try {
// 组装发送的数据
mData += "\r\n";
byte[] sendMessage = mData.getBytes("utf-8");
// 获取客户端输出流
OutputStream out = mSocket.getOutputStream();
// 客户端发送数据
out.write(sendMessage);
out.flush();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//使用
//将数据发送出去
mSendDataTCPThread = new SendDataTCPThread(Constants.PORT, Constants.IP);
new Thread(mSendDataTCPThread).start();
//需要发送数据的地方
//将数据发送出去
mSendDataTCPThread.send(recever);