package cn.endv.tianyun.tcp;
import android.util.Log;
import org.greenrobot.eventbus.EventBus;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.net.Socket;
public class TcpClient {
public static Socket socket;
public static void startClient(final String address ,final int port){
if (address == null){
return;
}
if (socket == null) {
new Thread(new Runnable() {
@Override
public void run() {
try {
Log.i("tcp", "启动客户端");
socket = new Socket(address, port);
Log.i("tcp", "客户端连接成功");
PrintWriter pw = new PrintWriter(socket.getOutputStream());
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int len = -1;
while ((len = inputStream.read(buffer)) != -1) {
String data = new String(buffer, 0, len);
Log.i("tcp", "收到服务器的数据---------------------------------------------:" + data);
EventBus.getDefault().post(new MessageClient(data));
}
Log.i("tcp", "客户端断开连接");
pw.close();
} catch (Exception EE) {
EE.printStackTrace();
Log.i("tcp", "客户端无法连接服务器");
}finally {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
socket = null;
}
}
}).start();
}
}
public static void sendTcpMessage(final String msg){
if (socket == null ) {
TcpClient.startClient( "192.168.0.11" , 9002);
Log.i("tcp", "重启动客户端");
}
// if (socket == null && !socket.isConnected()) {
// TcpClient.startClient( "192.168.0.11" , 9002);
// Log.i("tcp", "重启动客户端");
// }
if (socket != null && socket.isConnected()) {
new Thread(new Runnable() {
@Override
public void run() {
try {
socket.getOutputStream().write(msg.getBytes());
socket.getOutputStream().flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
}
}