La programación de Android realiza la transmisión de información basada en la conexión WiFi directa

El código es el siguiente:
1. Primero declara las variables relevantes:

private ServerSocket serverSocket = null;
    private int ServerPort = 29898;
    private Socket socket = null;
    private OutputStream outputStream = null;
    private InputStream inputStream = null;
    private PrintWriter printWriter = null;
    private BufferedReader reader = null;

2. Escritura de código central:

            new Thread(new Runnable() {
    
    
                @Override
                public void run() {
    
    
                    try {
    
    
                        serverSocket = new ServerSocket(ServerPort);
                        Log.d(TAG,"Create A ServerSocket...");
                        socket = serverSocket.accept();
                        Log.d(TAG, "Client is Connected...");
                        outputStream = socket.getOutputStream();
                        inputStream = socket.getInputStream();
                        printWriter = new PrintWriter(outputStream,true);
                        reader = new BufferedReader(new InputStreamReader(inputStream));
                        if (isAcceptDevice){
    
    
                            //作为接收方,进行一些操作
                            while (true){
    
    
                                //生成Json字符串格式的JSON对象
                                String message = reader.readLine();
                                JSONObject jsonObject= null;
                                try {
    
    
                                    jsonObject = new JSONObject(message);
                                    String AssisDeviceName = jsonObject.getString("devicename");
                                    String AssisTime = jsonObject.getString("time");
                                } catch (JSONException e) {
    
    
                                    e.printStackTrace();
                                    Log.d(TAG, "Reading Jsonobject Error:"+e);
                                }
                            }
                        }else{
    
    
                            if (socket.isConnected()){
    
    
                                if (!socket.isOutputShutdown()){
    
    
                                    //向接收方发送消息
                                    JSONObject jsonObject=new JSONObject();
            try {
    
    
                jsonObject.put("devicename", MainActivity.MyDeviceName);
                jsonObject.put("time", time);
            } catch (JSONException e) {
    
    
                e.printStackTrace();
            }
            result=jsonObject.toString();
            printWriter.println(result);
            printWriter.flush();
            Log.d(TAG,"Send:"+result);
                                }
                            }
                        }
                    } catch (IOException e) {
    
    
                        e.printStackTrace();
                    }finally {
    
    
                    }
                }
            }).start();

Nota:
1. Es mejor crear un nuevo subproceso para reducir el impacto de la operación de transferencia de datos que consume mucho tiempo
2. El código anterior es solo un ejemplo de transferencia de "nombre del dispositivo" y "hora actual", y puede agregue datos a Json según sus necesidades en la cadena.
————————————————————————————————
Finalmente, publique mi cuenta pública personal: WeChat busque "Chaqian" o escanee la imagen a continuación. Por lo general, algunos artículos relacionados con la programación se actualizarán y todos pueden prestar atención ~
movimiento de té

Supongo que te gusta

Origin blog.csdn.net/weixin_46269688/article/details/110455966
Recomendado
Clasificación