UDP an Broadcast senden u. empfangen.

  • GM 8
  • UDP an Broadcast senden u. empfangen.

    Hallo Leute. Ich bin grad am rumbasteln und habe ein kleines Problem. Und zwar möchte ich eine Nachricht an alle Rechner im Netzwerk senden. Habe durch diesen Thread erfahren (Thread) das man dies mit dem sogenannten Broadcast machen kann. Leider funktioniert bei mir das nicht. Ich bin mir auch nicht sicher ob ich meine IP-Adresse in die Richtige Broadcast umwandle. Ich hab zum testen das so gemacht das ich einfach bei einem drücken auf die Leertaste, meine IP sende. Es kommt aber die Nachricht nur dort an, wo die Taste gedrückt worden ist. das komische aber, nicht immer. Wäre schön wenn ihr euch das mal näher anschaun könnt:

    Meine IP: 192.168.1.8
    Subnetzmasek: 255.255.255.0
    => Broadcast: 192.168.1.255

    Umwandlung:
    Spoiler anzeigen

    GML-Quellcode

    1. subnetz = "255.255.255.0";
    2. subnetz = string_replace_all(subnetz,"255","1");
    3. subnetz = string_replace_all(subnetz,"0","255");
    4. subnetz = string_replace_all(subnetz,"1","0");
    5. subnetz_anz = string_count("255",subnetz);
    6. list = ds_list_create();
    7. string_split(myip,".",list);
    8. ip1 = string(ds_list_find_value(list,0));
    9. ip2 = string(ds_list_find_value(list,1));
    10. ip3 = string(ds_list_find_value(list,2));
    11. ip4 = string(ds_list_find_value(list,3));
    12. switch(subnetz_anz) {
    13. case 4:
    14. ip1 = "255";
    15. case 3:
    16. ip2 = "255";
    17. case 2:
    18. ip3 = "255";
    19. case 1:
    20. ip4 = "255";
    21. break;
    22. }
    23. broadcast = ip1 + "." + ip2 + "." + ip3 + "." + ip4;
    Alles anzeigen


    Senden:
    Spoiler anzeigen

    GML-Quellcode

    1. if(keyboard_check(vk_space)) {
    2. clearbuffer();
    3. writestring(myip);
    4. sendmessage(udp,broadcast,port,0);
    5. }
    6. while(receivemessage(udp,0,0)) {
    7. show_message("Server gefunden. IP: " + string(readstring()));
    8. }


    MfG Rodrog
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.