当前位置: 首页 > news >正文

怎样创建微网站小型网站建设的经验

怎样创建微网站,小型网站建设的经验,上海市场监督管理局网站,拍摄宣传片的流程简要文章目录 其他文章监听端口接收消息 建立新线程完整代码 其他文章 下面是我的另一篇文章#xff0c;是在电脑上发送数据#xff0c;配合本篇文章#xff0c;可以实现电脑与手机的局域网通讯。直接复制粘贴就能行#xff0c;非常滴好用。 点击连接 另外#xff0c;如果你不… 文章目录 其他文章监听端口接收消息 建立新线程完整代码 其他文章 下面是我的另一篇文章是在电脑上发送数据配合本篇文章可以实现电脑与手机的局域网通讯。直接复制粘贴就能行非常滴好用。 点击连接 另外如果你不知道你的手机ip也可以通过如下文章获取哦这文章的是局域网IP限于局域网测试。 点击连接 监听端口 我们可以创建一个DatagramSocket对象用于在指定的端口上接收UDP消息。 DatagramSocket是Java中用于进行UDP通信的类它代表一个数据报套接字。通过DatagramSocket对象我们可以发送和接收UDP数据报。 示例代码如下 val udpSocket DatagramSocket(port)port变量是指定的端口号用于指定UDP套接字绑定的端口。创建的udpSocket对象将在目标端口号上进行监听用于接收来自其他节点的UDP消息。 接收消息 一旦创建了DatagramSocket对象就可以使用该对象的receive方法来接收UDP消息并将接收到的数据存储在一个DatagramPacket对象中然后通过解析DatagramPacket对象来获取实际的消息内容。 示例代码如下 val buffer ByteArray(1024) val packet DatagramPacket(buffer, buffer.size) udpSocket.receive(packet)接收到消息后就可以进行相应的处理操作比如更新UI等。 建立新线程 在Android开发中主线程也称为UI线程负责处理用户界面的更新和响应用户交互事件包括处理用户输入、渲染界面等操作。如果在主线程中执行耗时的操作如网络请求、文件读写等会导致界面卡顿、无响应或ANR错误。 为避免这种情况在执行网络数据的接收操作时需要使用Thread来创建一个新的线程。将耗时的操作放在新的线程中执行保持主线程的响应性。这样主线程仍然可以继续处理用户界面的更新和事件而不会因为阻塞在接收消息操作上而产生卡顿或无响应的情况。 开启新线程首先创建一个Thread对象并传入一个Runnable对象作为参数。Runnable对象定义了线程要执行的操作。 示例代码如下 val receiveThread Thread(Runnable { })在线程中我们可以通过Thread.currentThread()方法获得当前执行的线程对象。 而通过线程对象的isInterrupted()方法可以检查当前线程是否被中断。如果线程被中断isInterrupted()方法会返回true否则返回false。 如此一来我们可以在线程中通过一个循环来不断的接收数据。 示例代码如下 while (!Thread.currentThread().isInterrupted) { }循环条件表示当当前线程不被中断时执行循环体内的代码。这样程序就在后台线程中执行持续性的任务直到线程被中断或任务完成才退出循环。 当然了要在循环体内部结束循环的话只要执行Thread.currentThread().interrupt()方法即可该方法会中断当前线程。然后isInterrupted()方法将会返回true循环条件将不再满足从而退出循环。这可以用来停止线程的执行并终止循环。 最后我们得到如下代码 val receiveThread Thread(Runnable {val udpSocket DatagramSocket(port)val buffer ByteArray(1024)val packet DatagramPacket(buffer, buffer.size)while (!Thread.currentThread().isInterrupted) {try {udpSocket.receive(packet)val receivedData: String String(packet.data, 0, packet.length)runOnUiThread {updateReceivedMessage(receivedData)}} catch (e: Exception) {e.printStackTrace()}}udpSocket.disconnect()udpSocket.close() })在Runnable对象的run方法中我们创建了一个DatagramSocket对象并指定了要监听的端口号。然后我们创建了一个字节数组buffer以及一个DatagramPacket对象packet用于接收UDP数据。 在循环中我们使用udpSocket.receive(packet)方法来接收数据。一旦有数据到达receive方法会阻塞直到数据到达或者发生异常。当数据到达后使用packet对象从接收到的数据中提取字符串并调用runOnUiThread方法来在UI线程中更新界面上的receivedMessageTextView的文本内容显示接收到的消息。 在循环结束后记得关闭udpSocket连接。 完整代码 import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import android.widget.TextView import java.net.DatagramPacket import java.net.DatagramSocketclass MainActivity : AppCompatActivity() {private val port 8888private lateinit var receivedMessageTextView: TextViewoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)receivedMessageTextView findViewById(R.id.tv_received_message)val receiveThread Thread(Runnable {val udpSocket DatagramSocket(port)val buffer ByteArray(1024)val packet DatagramPacket(buffer, buffer.size)while (!Thread.currentThread().isInterrupted) {try {udpSocket.receive(packet)val receivedData: String String(packet.data, 0, packet.length)runOnUiThread {updateReceivedMessage(receivedData)}} catch (e: Exception) {e.printStackTrace()}}udpSocket.disconnect()udpSocket.close()})receiveThread.start()}private fun updateReceivedMessage(message: String) {receivedMessageTextView.text message} }
http://www.zqtcl.cn/news/503212/

相关文章:

  • 软件最全网站株洲网站排名优化价格
  • 购物便宜的网站有哪些家居企业网站建设讯息
  • 美橙网站产品详情深圳做网站的公司哪个好
  • 江苏省建设注册中心网站平面设计要素
  • 厦门网站建设_策划公司
  • 惠州建网站服务网站建设价格是哪些方面决定的
  • 如何在百度上做公司做网站搜索百度网页版
  • 松江新城投资建设发展有限公司网站产品营销文案
  • 哪个网站有做彩平的材质贴图广州app开发公司排行十强
  • 泉州网站设计蜜桃传奇免费网页版
  • 做建筑机械网站那个网站好茂名网站开发服务商
  • 网站建设制作方法网站设计昆明
  • 设计一个自己的电商网站中国建设银行官网首页登录
  • 肇庆自助网站建设系统南通网站建设项目
  • 道农网站建设工作网站开发制作
  • 网页游戏网站快手wordpress hppts
  • 男男做h的视频网站德邦公司网站建设特点
  • 嘉兴市建设教育网站html5从入门到精通
  • 双语言网站源码在哪个网站可以找到做国珍的人
  • 广州建设网站哪家好烟台网站建设地址
  • 网址注册了怎么做网站wordpress截取标题
  • 网站备案一个主体龙岩网站建设行情
  • 深圳做网站的公司烟台网站开发技术
  • 网站开发就业前景分析手机网站导航设计
  • 山西焦煤集团公司网站推广公司一般都怎么推广
  • 前端视频教程网站燕郊网站建设哪家好
  • 加强校园网站建设方案做核酸检测收费标准
  • 主机开通成功网站正在建设中中国建设银行登录官网
  • 12306的网站是哪个公司做的wordpress搜索页分类
  • 众筹网站的分析与设计wordpress 主题制作教程