1. 程式人生 > >android程式設計3 socket程式設計之udp傳送

android程式設計3 socket程式設計之udp傳送

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

本文部落格連結: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,埠為模擬器名稱

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述