<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 241,  comments - 116,  trackbacks - 0

    先介紹兩個UDP相關的類

    DatagramSocket 這個是UDP套接字,一般服務器端可以綁定一個本機端口,而客戶端發送方則不需要。

    DatagramPacket 這個是數據報包,服務器端直接按緩存讀,客戶端則需要指定Ip地址和端口

    這次我們做個android手機端跟電腦端通信

    電腦端:
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.SocketException;


    public class UdpRecv {

        public static void main(String[] args) throws Exception{
            
            //綁定本機斷開
            DatagramSocket ds = new DatagramSocket(8080);
            
            byte[] buf = new byte[1024];
            DatagramPacket dp = new DatagramPacket(buf,buf.length);
            
            //接收數據包
            ds.receive(dp);
            
            //取出數據報內容
            String str = new String(dp.getData(),0,dp.getLength());
            
            System.out.println(str);
            
            //打印發送方的地址
            System.out.println("ip:"+dp.getAddress().getHostAddress()+"port:"+dp.getPort());
            
            ds.close();
        }
    }
    -----------------------------------------------------
    android相關內容:
    -----------------------------------------------------
    手機端:
    package com.bvin.test.udp;

    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;

    import android.app.Activity;
    import android.content.Context;
    import android.net.wifi.WifiInfo;
    import android.net.wifi.WifiManager;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.EditText;

    public class MainActivity extends Activity {
        /** Called when the activity is first created. */
        EditText et ;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
             et =  new EditText(this);
            
            setContentView(et);
            
            WifiManager wMan = (WifiManager)getSystemService(Context.WIFI_SERVICE);
            if(!wMan.isWifiEnabled()){
                wMan.setWifiEnabled(true);
            }
            WifiInfo wifiInfo = wMan.getConnectionInfo();
            Log.e("ip", intToIp(wifiInfo.getIpAddress()));//本機ip(僅wifi環境)
        }

        //把獲取的整形轉換成字符型
        private String intToIp(int i) {         
            
            return (i & 0xFF ) + "." +         
          ((i >> 8 ) & 0xFF) + "." +         
          ((i >> 16 ) & 0xFF) + "." +         
          ( i >> 24 & 0xFF) ;   
       }
        
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // TODO Auto-generated method stub
            menu.add("發送");
            return super.onCreateOptionsMenu(menu);
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // TODO Auto-generated method stub
            if(item.getItemId()==0){
                DatagramSocket ds;
                try {
                    //套接字
                    ds = new DatagramSocket();
                    //發送內容
                    String str = et.getText().toString();
                    //構建數據報(內容+地址)
                    DatagramPacket dp = new DatagramPacket(str.getBytes(),str.length(),InetAddress.getByName("192.168.0.102"),8080);
                    //把數據報發送出去
                    ds.send(dp);
                    //關閉套接字
                    ds.close();
                    
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
            }
            return super.onOptionsItemSelected(item);
            
        }
        
        
    }
    首先運行電腦接收端,在接收到發送方數據之前將會一直阻塞。而手機端會有個輸入框,有個發送菜單,將會把輸入框的內容給發送到PC端,雖然UDP不算可靠,但是在局域網還是挺可靠。
    posted on 2013-02-07 13:44 墻頭草 閱讀(10001) 評論(4)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    人人游戲網 軟件開發網 貨運專家
    主站蜘蛛池模板: 国产又黄又爽又猛的免费视频播放 | 久久久久久久久久国产精品免费| 鲁死你资源站亚洲av| 亚洲国产日韩在线人成下载| 国产亚洲婷婷香蕉久久精品| 天天摸天天碰成人免费视频| 免费国产午夜高清在线视频| 一级特级aaaa毛片免费观看| 日韩在线观看视频免费| 妇女自拍偷自拍亚洲精品| 老司机精品视频免费| 人成电影网在线观看免费| 国产精品永久免费视频| 日韩电影免费在线观看网站| 久久99热精品免费观看动漫 | 亚洲日韩国产精品乱-久| 亚洲日本久久一区二区va| 国产91在线|亚洲| 亚洲高清乱码午夜电影网| 国产精品亚洲色图| 一区二区三区在线免费| 麻豆精品不卡国产免费看| 国产免费女女脚奴视频网 | 一区二区三区免费精品视频| 在线观看免费黄色网址| 99热在线观看免费| 四虎永久在线精品免费网址 | 最新仑乱免费视频| 国产极品粉嫩泬免费观看| 亚洲色一色噜一噜噜噜| 亚洲AV无码精品色午夜果冻不卡| 亚洲日产2021三区在线| 亚洲av无码成人影院一区| 高清永久免费观看| 37pao成人国产永久免费视频| 成人一a毛片免费视频| 精品亚洲成α人无码成α在线观看 | 99久久人妻精品免费二区| 最近免费中文字幕4| 亚洲国产人成中文幕一级二级| 久久精品国产亚洲av麻豆|