android编程3:socket编程之udp发送

来源:互联网 发布:对大数据的理解和认识 编辑:程序博客网 时间:2024/06/07 13:56

本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.

需要实现的功能:采用udp下的socket编程,当按下确认键,模拟器发送文本框数据,pc机上的网络调试助手接收


环境:win7 + eclipse + sdk

代码:

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;        private static final int MAX_DATA_PACKET_LENGTH = 40;    private byte[] buffer = new byte[MAX_DATA_PACKET_LENGTH];    private DatagramPacket dataPacket;    private DatagramSocket udpSocket;    /** 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();                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();        }                       press.setOnClickListener(new Button.OnClickListener()        {        @Override        public void onClick(View v)        {        flag = true;        /*                String str = "hello,jdh";  //这是要传输的数据        byte out [] = str.getBytes();  //把传输内容分解成字节                dataPacket.setData(out);                dataPacket.setLength(out.length);                */                                //获得输入框文本        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();                }        }        });    }}
界面:

注意:在模拟器IP为本机IP,端口为模拟器名称

原创粉丝点击