实现按下不同按键,往服务器发送不同消息
页面xml部分
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/fh"
android:layout_centerVertical="true"
android:onClick="sendMessage"
android:text="后退" />
<Button
android:id="@+id/turnRight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginBottom="65dp"
android:layout_marginLeft="27dp"
android:onClick="sendMessage"
android:text="右转" />
<Button
android:id="@+id/fh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/back"
android:layout_alignLeft="@+id/turnRight"
android:layout_marginBottom="68dp"
android:layout_marginLeft="34dp"
android:onClick="sendMessage"
android:text="前进" />
<Button
android:id="@+id/turnLeft"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/back"
android:layout_toLeftOf="@+id/back"
android:onClick="sendMessage"
android:text="左转" />
</RelativeLayout>
Java部分

NetUtils.java
- 创建一个函数,用来开线程来发送数据
- 必须要在线程里进行网络访问,不然会有异常
package com.example.socket.dzz.nets;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
public class NetUtils {
public static void sendMessageHandler(final String command){
new Thread(new Runnable() {
@Override
public void run() {
try {
Socket client = new Socket("192.168.1.103", 8800);
OutputStream out = client.getOutputStream();
out.write(command.getBytes());
}catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
}
MainActivity.java
package com.example.socket.dzz;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;
import com.example.socket.dzz.nets.NetUtils;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void sendMessage(View v){
switch(v.getId()){
case R.id.fh:
NetUtils.sendMessageHandler("gofoward");
break;
case R.id.back:
NetUtils.sendMessageHandler("goback");
break;
case R.id.turnLeft:
NetUtils.sendMessageHandler("goLeft");
break;
case R.id.turnRight:
NetUtils.sendMessageHandler("goRight");
break;
}
}
}