zoukankan      html  css  js  c++  java
  • android 与C# UDP通信

    最近几天一直在做android的与C#的UDP通信,但是在网上没有找到,只有TCP的,唉,伤心啊。。。。。

    于是自己琢磨了几天,终于成功了。

    其实,C#与java通信,只要两者都遵循协议就行了。

    C#端向android端不停的发送8192个字节。

    PC端:

    UdpClient udpClient=new UdpClient(6800);//设置监听端口

    IPEndPoint remote = new IPEndPoint(IPAddress.Any, 0);//用指定的地址和端口号初始化 IPEndPoint 类的新实例。

    现在初始化基本上完成了,由于是要发给android端,android连上WIFI不知道IP地址,所以只要android发送一条消息给PC,那么remote就知道android的IP地址了。

    所以Byte[]rece=udpClient.Receive(ref remote); //Receive会阻塞,只有收到消息后才会发送。

    然后udpClient.Send(send,send.Length,remote);

    这样就可以发送消息了。

    android端:

    InetAddress serverAddress=InetAddress.getByName("172.24.54.166");

    DatagramSocket socket =new DatagramSocket();

    DatagramPacket sendPacket=new DatagramPacket(bytesend, bytesend.length,serverAddress,6800);//用于发送,指定地址
    DatagramPacket recePacket=new DatagramPacket(byterece,byterece.length);//用于接收

    socket.send(sendPacket);//先发送一条信息

    socket.receive(recePacket2);//开始接收

    这样就可以完成C#与android UDP通信了。

    现在存在的问题是:1.网络中断的话不能继续发送,这个我认为可以每隔几秒检测一下网络。

    2.丢包严重,这个是UDP的特点,关于怎样减少丢包,自己去解决吧。

     

  • 相关阅读:
    避免前置声明
    CLion在WSL上远程调试代码设置
    push_back与构造函数
    _BLOCK_TYPE_IS_VALID(pHead->nBlockUse问题解析
    Qt报错
    关于引用与指针实现多态的一些记录
    Vue-Axios异步通信
    Kafka概述
    学习Ajax看着一篇就够了
    学习Json看着一篇就够了
  • 原文地址:https://www.cnblogs.com/wuyihong/p/2505437.html
Copyright © 2011-2022 走看看