The UDP transmission of Android

Source: Internet
Author: User

Note In addition to adding Internet permissions, add two lines of code

Strictmode.setthreadpolicy (New StrictMode.ThreadPolicy.Builder (). Detectdiskreads (). Detectdiskwrites (). Detectnetwork (). Penaltylog (). build ());
Strictmode.setvmpolicy (New StrictMode.VmPolicy.Builder (). Detectleakedsqlliteobjects (). Detectleakedclosableobjects (). Penaltylog (). Penaltydeath (). build ());

Import Java.io.ioexception;import Java.net.datagrampacket;import java.net.datagramsocket;import Java.net.inetaddress;import Java.net.socketexception;import Java.net.unknownhostexception;import Java.text.simpledateformat;import Java.util.date;import Java.util.uuid;import Android.annotation.SuppressLint; Import Android.os.bundle;import android.os.handler;import Android.os.message;import Android.os.strictmode;import Android.util.Log; @SuppressLint ("Newapi") Public classsocketudp {Thread mreceivethread;     Datagramsocket serverreceive;    Datagramsocket serversend; InetAddress Local=NULL; //Construction Method     Publicsocketudp () {Try{strictmode.setthreadpolicy (NewStrictMode.ThreadPolicy.Builder (). Detectdiskreads (). Detectdiskwrites (). Detectnetwork (). Penaltylog (). Build (            )); Strictmode.setvmpolicy (NewStrictMode.VmPolicy.Builder (). Detectleakedsqlliteobjects (). Detectleakedclosableobjects (). Penaltylog ().                       Penaltydeath (). build ()); if(serverreceive!=NULL) {serverreceive.close (); Serverreceive=NULL; } serverreceive=NewDatagramsocket (NULL); Serverreceive.setreuseaddress (true); Serverreceive.setbroadcast (true); Serverreceive=NewDatagramsocket (5061); Mreceivethread=NewThread (Updatethread);                                     Mreceivethread.start (); Local= Inetaddress.getbyname ("192.168.1.51"); //server.setreuseaddress (TRUE); }Catch(Exception e) {e.printstacktrace (); }              }    //Receive data processingFinal Handler Updatebarhandler =NewHandler () {@Override Public voidhandlemessage (Message msg) {SimpleDateFormat DF=NewSimpleDateFormat ("HH:mm:ss");//Set Date formatString Strdate=df.format (NewDate ()); String receivestring= (Msg.getdata ()). GetString ("Data"); Syslogactivity.addtolog (strdate+"  "+receivestring); LOG.E ("Receive:"+strdate,receivestring); //Receive data processing                   }      }; //A thread class that declares by using anonymous inner classesRunnable Updatethread =NewRunnable () { Public voidrun () {Try{                //get a Message object, the message class is provided by the Android systemMessage msg =NewMessage (); Bundle b=NewBundle (); //Defining Buffers                byte[] buffer =New byte[1024x768]; //define receive packetsDatagrampacket packet =Newdatagrampacket (buffer, buffer.length);  while(true) {msg=Updatebarhandler.obtainmessage (); //Receive Dataserverreceive.receive (packet); //determine if the data is received and then output the string                    if(Packet.getlength () >0) {String str=NewString (Buffer,0, packet. GetLength ()); B.putstring ("Data", str +"\ n");                          Msg.setdata (b); //adding a Message object to the queue of messagesupdatebarhandler.sendmessage (msg); }                  }              }            Catch(Exception ex) {LOG.E ("socketudp", ex.tostring ());        }        }      };  Public voidSendbuffer (byte[] buffer) {        Try{serversend=NewDatagramsocket (); Datagrampacket P=NewDatagrampacket (buffer, buffer.length, local,5060);            Serversend.send (P);                    Serversend.close (); } Catch(IOException e) {e.printstacktrace (); }    }         Public voidCloseme () {serverreceive.close (); }}
socketudp

The UDP transmission of Android

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.