Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ESP32:将广播发送到本地网络,并通过Android应用程序接收广播_C#_Android_Arduino_Broadcast_Esp32 - Fatal编程技术网

C# ESP32:将广播发送到本地网络,并通过Android应用程序接收广播

C# ESP32:将广播发送到本地网络,并通过Android应用程序接收广播,c#,android,arduino,broadcast,esp32,C#,Android,Arduino,Broadcast,Esp32,我写了一个小草图,让ESP建立了自己的网络: #include <WiFi.h> void setup() { Serial.begin(115200); WiFi.softAP("MyWiFiSSID", "MyWifiPW"); IPAddress IP = WiFi.softAPIP(); Serial.print("AP IP address: "); Serial.println(IP

我写了一个小草图,让ESP建立了自己的网络:

#include <WiFi.h>

void setup() {

  Serial.begin(115200);
 
  WiFi.softAP("MyWiFiSSID", "MyWifiPW");

  IPAddress IP = WiFi.softAPIP();
  Serial.print("AP IP address: ");
  Serial.println(IP);
}
谁能帮我一下,或者告诉我为什么我不能接收这个广播?ESP32代码中是否有错误?或者在我的应用程序代码中(但当在网络中播放另一个C#广播时,应用程序会显示它,没问题)?还是怎么了

我真的很高兴得到每一个答案


致以最诚挚的问候

您是否已将带有应用程序的手机连接到ESP的WiFi网络,还是仍在您的家庭WiFi网络上?您好@ocrdu,非常感谢您的回答,没有,我已将带有应用程序的手机连接到ESP的WiFi网络,我非常确定^^
#include <AsyncUDP.h>

AsyncUDP udp;

void loop() {
  String testString = "test";
  udp.broadcastTo(testString.c_str(), 55559);

  delay(5000);
}
BroadcastReceiver broadcastReceiver;
private void OnButtonClick(object sender, EventArgs e){
    broadcastReceiver = new BroadcastReceiver();
    broadcastReceiver.ConnectSocket();
    string ip = "";
    while (!broadcastReceiver.GetBroadcast(ref ip)){ }
    FindViewById<TextView>(Resource.Id.txt).Text = broadcastReceiver.BroadcastData;
}
class BroadcastReceiver{
    public string BroadcastData{
        get{
            if (broadcastdatastring == ""){
                return "";
            }
            return broadcastdatastring;
        }
    }

    private IPEndPoint ipe;
    private Socket socket;
    private byte[] Broadcastdata = new byte[110];
    private string broadcastdatastring;

    public void ConnectSocket(){
        ipe = new IPEndPoint(IPAddress.Any, 55559);
        socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp){
            ReceiveBufferSize = 100 * 110
        };
        socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 1000);
        socket.Bind(ipe);
        return;
    }
    public bool GetBroadcast(ref string ip){
        ip = "";
        broadcastdatastring = "";

        if (socket?.Available > 0){
            var ep = (EndPoint)ipe;
            int received = socket.ReceiveFrom(Broadcastdata, ref ep);

            broadcastdatastring = Encoding.ASCII.GetString(Broadcastdata);
            ip = ((IPEndPoint)ep).Address.ToString();
        }
        return ip != "";
    }
}