Android UDP

原创 2016年06月02日 00:04:23
package com.chy.socket;

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

import com.chy.global.GlobalValue;

public class UdpClient {

	private boolean isStop = false;
	private DatagramSocket datagramSocket = null;
	private onReceiveListener onReceiveListener = null;
	private ReadThread readThread = null;
	
	public interface onReceiveListener {
		public void onReceive(DatagramPacket packet);
	}

	class ReadThread extends Thread {

		@Override
		public void run() {
			byte[] buffer = new byte[GlobalValue.READ_BLOCK_SIZE];
			DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
			while (!isStop && !isInterrupted()) {
				try {
					datagramSocket.receive(packet);
					if (onReceiveListener != null) {
						onReceiveListener.onReceive(packet);
					}
				} catch (IOException ex) {
					ex.printStackTrace();
				}
			}
		}

	}

	public UdpClient(int port, onReceiveListener onReceiveListener) {
		try {
			datagramSocket = new DatagramSocket(port);
		} catch (SocketException ex) {
			ex.printStackTrace();
		}
		if (datagramSocket == null) {
			return;
		}
		this.onReceiveListener = onReceiveListener;
		readThread = new ReadThread();
		readThread.start();
	}

	public synchronized boolean send(byte[] buffer) {
		boolean result = false;
		if(datagramSocket != null) {
			DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
			try {
				datagramSocket.send(packet);
				result = true;
			} catch (IOException ex) {
				ex.printStackTrace();
			}
		}
		return result;
	}

	public void close() {
		isStop = true;
		if(readThread != null && !readThread.isInterrupted()) {
			readThread.interrupt();
			readThread = null;
		}
		if (datagramSocket != null) {
			datagramSocket.close();
		}
	}
}

版权声明:转载请注明出处——http://blog.csdn.net/chy555chy/article

Android Socket通信(一)--基于UDP协议通信

最近做功能需要用到使用UDP协议和服务器进行通信,之前没有接触这一块,所以花了些时间了解和实现,这里做一下记录和分享。...
  • lizebin_bin
  • lizebin_bin
  • 2017年03月16日 15:03
  • 2657

【Android Socket专题】:UDP通信客户端app的demo的实现

关于UDP通信其实可以不用多做累述,多数像我一样的朋友在此基础上也只是为了应用,需要了解下该了解的就可以了,具体的想要对这个协议研究深入的,可以自己努力!我这儿只做Android客户端的应用实现,注意...
  • shankezh
  • shankezh
  • 2016年02月24日 15:38
  • 7169

Android-->UDP协议的Socket数据传输

阅读之前,你已经了解了UDP的相关知识;UDP数据传输时,数据包的大小是有限制的65535, 大概是64k的内容当数据太大时,需要分包机制,后续补充…如果你有更好的分包方法,请分享给我~谢谢!接收端的...
  • angcyo
  • angcyo
  • 2016年03月22日 14:49
  • 1436

Android的UDP请求与响应

Android的UDP请求与响应(DatagramSocket)我们在android网络里面可能用的最多的TCP协议,但是我们都知道其实除了TCP之外还有一个兄弟就是UDP。UDP是面向非连接的协议,...
  • qq272708698
  • qq272708698
  • 2016年03月16日 22:50
  • 1495

android中关于udp发送、接收的一些重点总结

最近做了一个关于udp的项目,分为移动端和服务器端,移动端用来给服务器发送数据同时接收服务器返回的数据,服务器当然是接收客户端数据了,然后返回一定的信息。期间遇到了很多问题,但最后还是解决了,所以想和...
  • sinat_27681957
  • sinat_27681957
  • 2016年05月16日 16:31
  • 7288

Android中UDP通信

个人也同意网上的一些观点,Android开发中尽量不使用UDP进行数据通信。 个人观点:1,UDP不能保证数据传输。2,有的手机不能接收UDP数据包。3,个人觉得用HTTP协议更方便,也更能保证数据传...
  • true100
  • true100
  • 2016年03月10日 11:55
  • 3033

Android 通过UDP广播建立Socket

前言:项目中遇到的实际问题,Android手机想要和局域网中的某个主机进行Socket通信,但是Socket连接前却无法获知该主机的IP, 为了建立Socket,就需要Android手机在局域网内发送...
  • Elsa_Rong
  • Elsa_Rong
  • 2015年08月04日 22:23
  • 3137

android编程3:socket编程之udp发送

本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 需要实现的功能:采用udp下的socket编程,当按下确认键,模拟器发送文本框数据,pc机上的网络...
  • jdh99
  • jdh99
  • 2011年08月15日 10:50
  • 13601

android的UDP编程实例

一、有的手机不能直接接收UDP包,可能是手机厂商在定制Rom的时候把这个功能给关掉了。 1、可先在oncreate()方法里面实例化一个WifiManager.MulticastLock 对象loc...
  • tanghongchang123
  • tanghongchang123
  • 2016年12月13日 14:21
  • 1670

Android UDP连接发送请求和接受请求的例子

UDP请求的发送 import android.content.Context; import android.net.wifi.WifiInfo; import android.net.wifi...
  • qq_31490071
  • qq_31490071
  • 2016年06月14日 11:39
  • 5118
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android UDP
举报原因:
原因补充:

(最多只允许输入30个字)