大致思路
- 封装一个类来与服务端进行连接
- 这个类要用线程来实现多个连接
- 主函数根据View 的id来判断具体命令来执行相应操作
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<Button
android:onClick="openweb"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="点击进入网页"
/>
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
click.java
package com.example.socketapp;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import android.widget.Toast;
public class click {
public String cmd;
public click(String cmd)
{
this.cmd=cmd;
}
public void Click_Button(){
new Thread(new Runnable() {
@Override
public void run() {
try {
Socket client = new Socket("192.168.1.29", 8787);
OutputStream out=client.getOutputStream();
out.write(cmd.getBytes());
System.out.println("-------发送完成---------");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
}
MainActivity.java
package com.example.socketapp;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void Click_cmd(View v)
{
int id=v.getId();
switch(id){
case R.id.openButton:
new click("open").Click_Button();
break;
case R.id.offButton:
new click("off").Click_Button();
break;
}
}
}