UDP Socket Demo 总结

一、服务器端建立Socket监听

1、Class类里添加PORT定义 

  //add by cbl 3-9 Socket global variable
    private static final int PORT = 20001;  

2、创建监听线程   

    class LooperThread extends Thread {      
   	 public void run() {           
    		Looper.prepare();  
    		startSocket();
   	 	Looper.loop();       
    	}
    }
    
    public void startSocket() {
    
    //UDP receive
        try
        {
       	 	DatagramSocket socket=new DatagramSocket(PORT); 
       		byte data[]=new byte[1024]; 
       		while(true){
        		DatagramPacket packet = new DatagramPacket(data,data.length);//注意此句不能放在循环外面的上面代码中,否则packet长度为第一次收到数据的长度,不被动态改变
      			socket.receive(packet); 
       			String result= new String(packet.getData(),packet.getOffset(),packet.getLength()); 
     			//Log.v("getData----->","********:"+new String(packet.getData())+"***"+packet.getOffset()+"***"+packet.getLength()+"******");  
       			Log.v("result----->","***************:"+result+"***************");  
       			//commitResultText(result);//调用显示文本函数
       		}


   	} catch (Exception e) {  
      		 e.printStackTrace();  
   	}  
    }

3、开启线程实现监听,放在OnCreate函数中,或其他需要启动监听的入口

 //add by cbl 3-9 开启线程实现监听
 new LooperThread().start();

二、客户端实现UDP Socket发送

1、定义PORT和HOST

private static final String HOST = "127.0.0.1";
    private static final int PORT = 20001; 
2、发送UDP 数据

//UDP client Send
            	try{ 
                    DatagramSocket socket = new DatagramSocket(PORT); 
                    InetAddress serverAddress = InetAddress.getByName("127.0.0.1");
                    String str= "Msg from UDP Client!";//ed_msg.getText().toString(); 
                    byte data[]=str.getBytes(); 
                    DatagramPacket packet = new DatagramPacket(data,data.length,serverAddress,PORT); 
                    socket.send(packet); 
                 }catch(Exception e){ 
                    e.printStackTrace(); 
                 }    

Manifest.xml 添加网络授权
 <uses-permission android:name="android.permission.INTERNET"/>     

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值