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

       最近做了一个关于udp的项目,分为移动端和服务器端,移动端用来给服务器发送数据同时接收服务器返回的数据,服务器当然是接收客户端数据了,然后返回一定的信息。期间遇到了很多问题,但最后还是解决了,所以想和他人分享一下下,希望可以帮到一些开发的朋友。

      做这个项目时,在网上也是查了一些资料,发现很多朋友在客户端接收服务器返回数据时出了问题,发送几乎没有什么问题。

      这些问题的发生从本质上讲,只要IP、port正确了,通信肯定不会有问题,也就是说是IP、或者port出了问题。

      我发现udp的客户端和服务器通信本质上可以有两种形式:

1:客户端接收数据、发送数据使用同一个port,服务器接收到数据后,可以获取数据来源的IP、port,从而返回相应的数据(推荐这种方式)

2:客户端接收数据的port固定,服务器接收到客户端数据后,就向这个固定的port发送数据,这两种方式的服务器接收端口都是固定的。

        好了,大约就是这个样子,由于第二种操作实在太容易理解,我直接附上第一种方式的核心代码:(如有不足,多多指教,接收到的数据是用handler进行回调的,过几天有空我还会附上demo的)

public DatagramSocket udpSocket;

/**
 * send udp
 */
public class BroadCastUdp extends Thread {

    private byte[] getData=null;

    public BroadCastUdp(byte[] data) {
        this.getData=data;
    }

    public void run() {
        DatagramPacket dataPacket = null;
        int count =0;

        try {
            udpSocket = new DatagramSocket();
            dataPacket = new DatagramPacket(buffer, buffer.
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值