实现PC端和android端之间的通信(从android端发送一条信息到PC端,PC端可以接受,并可以把这条信息返回到android端并且显示出来。)
注意点:
1、 在写android代码的时间一定要有处理4.0以后的线程问题,可以使用StrictMode进行解决。
2、 由于程序里面需要Socket进行网络通信,所有程序里面只需要一个Socket,切不可使用多个Socket,既Socket的new对象只需要一个就好了。
3、 记得要在android中添加访问网络的权限
4、 为了加快网络通信的实时性,在发送时间最好采用writer.write(Msg.replace("\n", " ") +"\n");的格式,这样可以极快的进行网络通信
5、 在android端中没有流和socket的关闭,在PC使用的是ServerSocket;android端使用的是Socket
程序流程:
源码:
android端:
package is.my.fansendmsgtopc;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.app.Activity;
public class MainActivity extends Activity implements OnClickListener {
private TextView ShowText; // 用于显示从PC端返回来的数据
private EditText SendMsg; // 记录要发送的内容
private Button SendButton; // 发送按键
private String Msg; // 消息的储存
private String Ip = "192.168.1.139"; // 定义目标Ip,用于发送指定方向
private int Prop = 1818; // 定义串口号,用于网络通信
private Socket socket; // 定义socket,以后后面使用
private BufferedWriter writer; // 定义writer流用于文字的写入
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DispleThradQuestion();
initialise();
}
/**
* 定义一个StrictMode用来消除线程问题
*/