博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android编程4 多线程编程
阅读量:3948 次
发布时间:2019-05-24

本文共 3633 字,大约阅读时间需要 12 分钟。

               

本文博客链接:,作者:jdh,转载请注明.

功能与编程3中一样,当按下键后,发送文本框中数据给PC。不同的是把发送数据的功能放在一个线程socket_send中。

环境:win7 + eclipse + ndk

代码:

主类test_socket.java

package test.soket;//import com.test_button.R;import java.io.DataOutputStream;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.Socket;import java.net.SocketException;import java.net.UnknownHostException;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;public class test_socket extends Activity {
 public static TextView show; public static Button press; public static boolean flag;     /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                //开辟控件空间        show = (TextView)findViewById(R.id.editText1);        press = (Button)findViewById(R.id.button1);        flag = false;        soket_send thread = new soket_send();        thread.init();        thread.start();                press.setOnClickListener(new Button.OnClickListener()        {         @Override         public void onClick(View v)         {          flag = true;         }        });    }}
线程类socke_sendt.java:

package test.soket;import java.io.DataOutputStream;  import java.io.IOException;  import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.Socket;  import java.net.SocketException;import java.net.UnknownHostException;  import java.util.LinkedList;    import android.media.AudioFormat;  import android.media.AudioRecord;  import android.media.MediaRecorder;  import android.util.Log;   public class soket_send extends Thread{
 private static final int MAX_DATA_PACKET_LENGTH = 40;    private byte[] buffer = new byte[MAX_DATA_PACKET_LENGTH];    private DatagramPacket dataPacket;    private DatagramSocket udpSocket;         public void init()   {       try        {         udpSocket = new DatagramSocket(5554);        }        catch (SocketException e)        {         // TODO Auto-generated catch block         e.printStackTrace();        }        dataPacket = new DatagramPacket(buffer, MAX_DATA_PACKET_LENGTH);        String str = "hello,jdh";  //这是要传输的数据  byte out [] = str.getBytes();  //把传输内容分解成字节        dataPacket.setData(out);        dataPacket.setLength(out.length);        dataPacket.setPort(5554);                try        {                         InetAddress broadcastAddr = InetAddress.getByName("192.168.0.248");         dataPacket.setAddress(broadcastAddr);         udpSocket.send(dataPacket);        }        catch (IOException e)        {         // TODO Auto-generated catch block         e.printStackTrace();        }    }          public void run()     {       while (true)     {      if (test_socket.flag)      {       //获得输入框文本    CharSequence str =test_socket.show.getText();          byte out[] = str.toString().getBytes();          dataPacket.setData(out);          dataPacket.setLength(out.length);          try          {                             InetAddress broadcastAddr = InetAddress.getByName("192.168.0.248");           dataPacket.setAddress(broadcastAddr);           udpSocket.send(dataPacket);          }          catch (IOException e)          {           // TODO Auto-generated catch block           e.printStackTrace();          }                    test_socket.flag = false;      }     }    }  }

注意:程序中采用的线程间通信的方法是把需要共享的变量设置成public属性

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!

你可能感兴趣的文章
敏捷开发笔记1
查看>>
vs2008
查看>>
转:NoSQL数据库探讨之一 - 为什么要用非关系数据库?
查看>>
log4cplus的按日生成文件,配置例子
查看>>
跨平台的文字编码转换方法--ICU
查看>>
ICU4C 4.4 静态库的编译
查看>>
FTP下载类, windows平台下对CFtpConnection上传下载的封装类
查看>>
代码自动生成-宏带来的奇技淫巧
查看>>
VC com开发中实现IObjectSafety
查看>>
c# 正则表达式基础
查看>>
C#3.0语言新特性
查看>>
W32Dasm反汇编工具使用教程
查看>>
EXE破解工具介绍
查看>>
机械码对应值
查看>>
常用语音编码的WAVE文件头格式剖析--各种编码
查看>>
在VC6集成环境中开发设备驱动程序的方法
查看>>
如何进行软件需求分析
查看>>
有关数据挖掘的10个常见问题
查看>>
电信数据挖掘
查看>>
电信数据挖掘之流失管理
查看>>