有段UDP SOCKET的代码,不知道怎么添加到线程中去,请高手帮一下 androidsocketudp 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 new Thread() { public void run() { //把UDP操作代码都放到这个地方,然后Handler更新UI }}.start(); public static Button button1; public static TextView Telini; public static boolean flag; private static final int MAX_DATA_PACKET_LENGTH = 40; private byte[] buffer= new byte[MAX_DATA_PACKET_LENGTH]; private DatagramPacket dataPacket; private DatagramSocket udpSocket; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //开辟控件空间 button1 = (Button)findViewById(R.id.button1); Telini = (TextView)findViewById(R.id.Telini); flag = false; ////////////////////////////////////////////////////////////////// new OperateUDPSocket().start(); button1.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){ flag = true; //获取输入文本框 CharSequence str = "Longin|android|6677"; byte out[] = str.toString().getBytes(); dataPacket.setData(out); dataPacket.setLength(out.length); try{ InetAddress broadcastAddr = InetAddress.getByName("221.194.44.22"); dataPacket.setAddress(broadcastAddr); udpSocket.send(dataPacket); }catch(IOException e){ e.printStackTrace(); } } }); } /////////////////////////////////////////////////////////////////// class OperateUDPSocket extends Thread { @Override public void run() { // TODO Auto-generated method stub super.run(); try{ udpSocket = new DatagramSocket(6677); } catch(SocketException e){ e.printStackTrace(); } dataPacket = new DatagramPacket(buffer,MAX_DATA_PACKET_LENGTH); String str = "Longin|android|6677"; //这是要传输的数据 byte out[] = str.getBytes(); //把要传输的内容分解成字节 dataPacket.setData(out); dataPacket.setLength(out.length); dataPacket.setPort(6677); try { InetAddress broadcastAddr = InetAddress.getByName("221.194.44.22"); dataPacket.setAddress(broadcastAddr); udpSocket.send(dataPacket); }catch(IOException e){ e.printStackTrace(); } } } button1.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){ flag = true; //获取输入文本框 CharSequence str = "Longin|android|6677"; byte out[] = str.toString().getBytes(); dataPacket.setData(out); dataPacket.setLength(out.length); try{ InetAddress broadcastAddr = InetAddress.getByName("221.194.44.22"); dataPacket.setAddress(broadcastAddr); udpSocket.send(dataPacket); }catch(IOException e){ e.printStackTrace(); } } });在这里面加 起个新的线程把你的发送那个sendXX的方法写道线程里 清空输入框 同时把法送的信息显示到已发送里 成功后发handler通知页面发送结果 不过你这没有输入框 怎样用android实现图片生成剪纸 SurfaceHolder的lockCanvas(Rect rect)问题 录音过程中怎么实时获得声音的大小 如何用string去匹配resid? android ndk相关 java与c问题 【求助】Android中EGL和OpenGLES如何编译? AChartEngine编译出错 SeekBar如何设置样式 Android ijkplayer库如何实现外挂字幕功能 android串口无法通信 使用wifi实现安卓手机与计算机串口通信,从而实现在移动端发送信息控制外部的单片机呢?
public void run() { //把UDP操作代码都放到这个地方,然后Handler更新UI }
}.start();
public static Button button1;
public static TextView Telini;
public static boolean flag;
private static final int MAX_DATA_PACKET_LENGTH = 40;
private byte[] buffer= new byte[MAX_DATA_PACKET_LENGTH];
private DatagramPacket dataPacket;
private DatagramSocket udpSocket;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//开辟控件空间
button1 = (Button)findViewById(R.id.button1);
Telini = (TextView)findViewById(R.id.Telini);
flag = false;
//////////////////////////////////////////////////////////////////
new OperateUDPSocket().start();
button1.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
flag = true;
//获取输入文本框
CharSequence str = "Longin|android|6677";
byte out[] = str.toString().getBytes();
dataPacket.setData(out);
dataPacket.setLength(out.length);
try{
InetAddress broadcastAddr = InetAddress.getByName("221.194.44.22");
dataPacket.setAddress(broadcastAddr);
udpSocket.send(dataPacket);
}catch(IOException e){
e.printStackTrace();
}
}
});
}
///////////////////////////////////////////////////////////////////
class OperateUDPSocket extends Thread {
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
try{
udpSocket = new DatagramSocket(6677);
} catch(SocketException e){
e.printStackTrace();
}
dataPacket = new DatagramPacket(buffer,MAX_DATA_PACKET_LENGTH);
String str = "Longin|android|6677"; //这是要传输的数据
byte out[] = str.getBytes(); //把要传输的内容分解成字节
dataPacket.setData(out);
dataPacket.setLength(out.length);
dataPacket.setPort(6677);
try {
InetAddress broadcastAddr = InetAddress.getByName("221.194.44.22");
dataPacket.setAddress(broadcastAddr);
udpSocket.send(dataPacket);
}catch(IOException e){
e.printStackTrace();
}
}
}
public void onClick(View v){
flag = true;
//获取输入文本框
CharSequence str = "Longin|android|6677";
byte out[] = str.toString().getBytes();
dataPacket.setData(out);
dataPacket.setLength(out.length);
try{
InetAddress broadcastAddr = InetAddress.getByName("221.194.44.22");
dataPacket.setAddress(broadcastAddr);
udpSocket.send(dataPacket);
}catch(IOException e){
e.printStackTrace();
}
}
});
在这里面加 起个新的线程把你的发送那个sendXX的方法写道线程里 清空输入框 同时把法送的信息显示到已发送里 成功后发handler通知页面发送结果 不过你这没有输入框