开发环境:win10
软件:android studio
软件2:Qt on android
环境配置:
https://www.cnblogs.com/ganchuanpu/p/6683490.html
环境配置2:
android stduio
1. gradle project sync failed https://blog.csdn.net/aphysia/article/details/72953687
2 android 简单实现TCP
tcp连接:
public class Client extends AppCompatActivity {
public Socket mSocket;
private SocketConnectThread mConnectThread;
private OutputStream mOutStream;
private InputStream mInStream;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_client);
mConnectThread = new SocketConnectThread();
mConnectThread.start();
}
class SocketConnectThread extends Thread{
public void run(){
try {
//连接服务端,指定服务端ip地址和端口号。
mSocket = new Socket("192.168.1.116",1234);
if(mSocket != null){
//获取输出流、输入流
mOutStream = mSocket.getOutputStream();
mInStream = mSocket.getInputStream();
}
} catch (Exception e) {
e.printStackTrace();
//mHandler.sendEmptyMessage(MSG_SOCKET_CONNECTFAIL);
return;
}
Log.i("Clinet","connect success");
//mHandler.sendEmptyMessage(MSG_SOCKET_CONNECT);
}
}
}
//发送
private void sendTxt(){
if(mSocket == null){
Toast.makeText(this, "没有连接", Toast.LENGTH_SHORT).show();
return;
}
String helloMsg="我是中文";
String msg = helloMsg;
if(msg.length() == 0)
return;
writeMsg(msg);
}
private void writeMsg(String msg){
Log.i("客户端" ,"writeMsg msg="+msg);
if(msg.length() == 0 || mOutStream == null)
return;
try {
mOutStream.write(msg.getBytes("GBK"));//发送
mOutStream.flush();
}catch (Exception e) {
e.printStackTrace();
}
}
TCP接收
//接收线程
class SocketReceiveThread extends Thread{
private boolean threadExit;
int count=0;
public SocketReceiveThread() {
threadExit = false;
}
public void run(){
byte[] buffer = new byte[1024];
while(threadExit == false){
try {
//读取数据,返回值表示读到的数据长度。-1表示结束
int a=0;
if( mInStream != null)
count = mInStream.read(buffer);
if( count == -1){
Log.i("收到", "read read -1");
break;
}else{
String receiveData = new String(buffer, 0, count, "gb2312");
Log.i("收到", "read buffer:"+receiveData+",count="+count);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
void threadExit(){
threadExit = true;
}
}
}
3布局
当为水平布局时,android:layout_height=“0dp",当为垂直布局时,android:layout_width="0dp",android:layout_weight为所占比重。