android studio虚拟机中一个程序模拟udp通信

这篇具有很好参考价值的文章主要介绍了android studio虚拟机中一个程序模拟udp通信。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

package com.example.transport1;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    EditText commandEditText;
    LinearLayout outputLayout;
    Button runButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        commandEditText = (EditText) findViewById(R.id.command);
        outputLayout = (LinearLayout) findViewById(R.id.command_output);
        runButton = (Button) findViewById(R.id.run);
        runButton.setOnClickListener(this);
        udp("127.0.0.1","3");
        udpSender();

    }

    @Override
    public void onClick(View view) {

    }


    private void udp(String ipAddress,String message) {
        new Thread(()->{
            try {
                final int PORT = 1234; // 目标端口号
                InetAddress address = InetAddress.getByName(ipAddress);
                // 创建UDP Socket
                DatagramSocket socket = new DatagramSocket();
                byte[] buffer = message.getBytes();
                // 创建要发送的数据包
                for(int i=1;i<=100;i++) {
                    DatagramPacket packet = new DatagramPacket(buffer, buffer.length, address, PORT);
                    // 发送数据包
                    socket.send(packet);

                }
                // 关闭Socket
                socket.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }).start();
    }

    private void udpSender() {
        new Thread(()->{
            Log.d("TAG","线程正在执行");
            try {
                final int PORT = 1234; // 目标端口号
                // 创建一个 DatagramSocket 对象,并指定监听的端口号
                DatagramSocket socket = new DatagramSocket(PORT);
                byte[] buffer =  new byte[1];
                while (true) {
                    DatagramPacket packet = new DatagramPacket(buffer, buffer.length);  // 创建一个 DatagramPacket 对象,用于接收数据
                    // 接收数据n
                    socket.receive(packet);//阻塞状态,等待数据包
                    // 解析接收到的数据
                    String receivedData = new String(packet.getData(), 0, packet.getLength());
                    runOnUiThread(() -> commandEditText.setText(receivedData));
                    Log.d("AAA", receivedData);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }).start();
    }


}

分别在两个方法中创建两个线程,一个作为服务器进行监听,一个作为客户端进行数据发送。文章来源地址https://www.toymoban.com/news/detail-723901.html

到了这里,关于android studio虚拟机中一个程序模拟udp通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 虚拟桌宠模拟器:VPet-Simulator,一个开源的桌宠软件, 可以内置到任何WPF应用程序

    虚拟桌宠模拟器 一个开源的桌宠软件, 可以内置到任何WPF应用程序 获取虚拟桌宠模拟器 OnSteam(免费) 或 通过[Nuget]内置到你的WPF应用程序 虚拟桌宠模拟器是一款桌宠软件,支持各种互动投喂等. 开源免费并且支持创意工坊. 反正免费为啥不试试呢( 该游戏为 [虚拟主播模拟器] 内

    2024年02月08日
    浏览(42)
  • Android Studio设置模拟器

    在开发Android应用程序时,使用模拟器是一种方便的方式来测试应用程序的运行情况。Android Studio提供了内置的模拟器,可以让开发者在不同的设备上模拟应用程序的运行。 下面将详细介绍如何在Android Studio中设置模拟器。 第一步:打开Android Studio并创建项目 首先,打开Andro

    2024年02月08日
    浏览(50)
  • 新版Android Studio模拟器浮动

    (水一篇,但其实很多入门同学不知道) 安装新版Andorid Studio后会发现模拟器是内嵌在AS中的,如何让她浮动    

    2024年02月13日
    浏览(54)
  • Android Studio 创建模拟器的教程

    Android Studio 创建模拟器的教程 在开发 Android 应用程序时,使用模拟器可以方便地进行测试和调试。本文将介绍如何在 Android Studio 中创建手机模拟器,并提供相应的源代码和说明。 步骤一:打开 Android Studio 首先,确保已经成功安装并打开了 Android Studio 开发环境。 步骤二:打

    2024年02月07日
    浏览(50)
  • android studio连接雷电模拟器调试

    一、下载雷电模拟器,安装完成后打开 下载地址:https://www.ldmnq.com/ 二、进入模拟器的桌面,系统应用—打开设置—点击关于平板电脑,连续点击5次版本号–会出现开发者选项—-进入开发者选项—-勾选usb调试。 三:按win+r,输入cmd打开命令控制器,将目录切换到你安装雷电

    2023年04月08日
    浏览(63)
  • vscode使用Android studio模拟器

    声明:flutter刚开始学,以下是我花了老半天才解决的,遇到相同问题的可以试一试。 首先确保你安装了Andiroid studio。然后在编辑器里面下载一个安卓模拟器。 模拟器好像会下载到C盘, 想下载到别的盘请自行百度。  我当时遇到的困境就是不管怎么启动这个模拟器,下面一

    2024年01月21日
    浏览(56)
  • 【Android studio虚拟机实现】

    Android studio虚拟机新手实现 整个安装和配置可以看我上传的PPT文件 Android基础与开发环境搭建(1) project location should not contain whitespace ,as this can cause problems with the NDK tools Error running ‘app’: No target device found. haxm device is not found androidStudio出现Executing tasks: [:app:assembleDebug]等错误

    2023年04月11日
    浏览(32)
  • Android Studio的笔记--socket通信

    Socket 作为一种通用的技术规范,首次是由 Berkeley 大学在 1983 为 4.2BSD Unix 提供的,后来逐渐演化为 POSIX 标准。Socket API 是由操作系统提供的一个编程接口,让应用程序可以控制使用 socket 技术。 Socket API 不属于 TCP/IP协议簇,只是操作系统提供的一个是一个对 TCP / IP协议进行封

    2024年02月03日
    浏览(45)
  • Android Studio安卓手机模拟器环境搭建

    1、以管理员身份启动命令提示符工具 2、清理旧环境  2、解压缩文件夹内提供的JDK 11(一定是11,不能是其它版本,如果前面已经安装过JDK8,需要先在控制面板中卸载JDK8,并且删除环境变量JAVA_HOME,以及删除环境变量Path中涉及到JDK8的内容;重启后安装JDK11)     将JDK解压

    2024年02月09日
    浏览(51)
  • Android Studio跳过Haxm打开模拟器

    由于公司权限限制无法安装Haxm,这个时候我们可以试试Arm相关的镜像去跳过Haxm运行模拟器。 解决方案 :安装API27以下的Arm Image.

    2024年02月13日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包