app/src/main/AndroidManifest.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/tcp/ConnectThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/layout/layout_tcpclient.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
app/src/main/AndroidManifest.xml
@@ -5,6 +5,8 @@ <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
New file @@ -0,0 +1,75 @@ package safeluck.drive.evaluation.fragment; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.design.widget.TextInputEditText; import android.support.v7.widget.AppCompatEditText; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import me.yokeyword.fragmentation.SupportFragment; import safeluck.drive.evaluation.R; import safeluck.drive.evaluation.tcp.ConnectThread; /** * MyApplication2 * Created by lzw on 2019/10/21. 17:56:51 * 邮箱:632393724@qq.com * All Rights Saved! Chongqing AnYun Tech co. LTD */ public class TcpFragment extends SupportFragment implements View.OnClickListener { private TextInputEditText ip; private TextInputEditText port; private Button btn_connect; private Button btn_send; private ConnectThread connectThread; private AppCompatEditText sendEditText; public static TcpFragment newInstance() { return new TcpFragment(); } @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.layout_tcpclient, container, false); initView(view); return view; } private void initView(View view) { ip = view.findViewById(R.id.input_ip); port = view.findViewById(R.id.input_port); sendEditText = view.findViewById(R.id.sendtxt); btn_connect = view.findViewById(R.id.btn_connect); btn_send = view.findViewById(R.id.btn_send); btn_send.setOnClickListener(this); btn_connect.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn_connect: String serverIp = ip.getText().toString().trim(); String serverPort = port.getText().toString().trim(); connectThread = new ConnectThread(serverIp,Integer.parseInt(serverPort)); connectThread.start(); break; case R.id.btn_send: if (connectThread != null){ connectThread.sendMessage(sendEditText.getText().toString().trim()); sendEditText.getText().clear(); } break; } } } app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -57,9 +57,9 @@ public void onClick(View v) { switch (v.getId()){ case R.id.view_map: MapFragment passwordFragment = findFragment(MapFragment.class); TcpFragment passwordFragment = findFragment(TcpFragment.class); if (passwordFragment == null) { passwordFragment = (MapFragment) MapFragment.newInstance(); passwordFragment = (TcpFragment) TcpFragment.newInstance(); start(passwordFragment); } else { start(passwordFragment); app/src/main/java/safeluck/drive/evaluation/tcp/ConnectThread.java
New file @@ -0,0 +1,88 @@ package safeluck.drive.evaluation.tcp; import android.provider.ContactsContract; import android.util.Log; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; /** * MyApplication2 * Created by lzw on 2019/10/21. 14:14:30 * 邮箱:632393724@qq.com * All Rights Saved! Chongqing AnYun Tech co. LTD */ public class ConnectThread extends Thread { private static final String TAG = "TCPClient"; private Socket mSocket = null; private boolean isConnected = false; private byte[] revBytes = new byte[1024]; private String ip; private int port; private InputStream inputStream ; private OutputStream mOutputStream; public ConnectThread(String ip,int port){ this.ip = ip; this.port = port; } @Override public void run() { super.run(); try { Log.i(TAG, "开始建立Socket"+ip+":"+port); mSocket = new Socket(ip,port); mOutputStream = mSocket.getOutputStream(); inputStream = mSocket.getInputStream(); isConnected = true; while (isConnected){ int length = 0; while ((length=(inputStream.read(revBytes))) != -1){ String str= new String(revBytes,"GBK"); Log.i(TAG, "收到消息: "+str.trim()); } } } catch (IOException e) { Log.i(TAG, "Socket建立失败"); isConnected = false; e.printStackTrace(); } } public void sendMessage(String lzw) { if (mOutputStream == null){ Log.i(TAG, "sendMessage fail,please create socket first!!!"); }else{ new Thread(new SendRunnable(lzw)).start(); } } class SendRunnable implements Runnable{ private String message ; public SendRunnable(String s) { this.message = s; } @Override public void run() { try { Log.i(TAG, "发送: "+message); mSocket.sendUrgentData(0xff); mOutputStream.write(message.getBytes("GBK")); } catch (IOException e) { Log.i(TAG, "发送失败"); e.printStackTrace(); } } } } app/src/main/res/layout/layout_tcpclient.xml
New file @@ -0,0 +1,68 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp" android:background="@android:color/white" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingLeft="10dp" android:paddingRight="10dp" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="服务器IP地址:"/> <android.support.design.widget.TextInputEditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/input_ip" android:text="192.168.10.234" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingLeft="10dp" android:paddingRight="10dp" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="服务器端口号::"/> <android.support.design.widget.TextInputEditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/input_port" android:text="60000" /> </LinearLayout> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn_connect" android:text="连接"/> <android.support.v7.widget.AppCompatEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/sendtxt"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="10dp" android:layout_gravity="end" android:id="@+id/btn_send" android:text="发送"/> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/darker_gray" android:textSize="19sp" android:id="@+id/content" android:text="flskajf"/> </LinearLayout>