Android 开发:Socket编程之udp发送

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

环境:Windows 7 + 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();                   }               }           });       }   }  

界面:

Android 开发:Socket编程之udp发送

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwddpd.html