Socket UDP Multithreading für ein Port

Grüße, ich bin neu hier und habe eine frage.

Ich Arbeit derzeit an einem einfachen Modul, dass auf Broadcast-Nachrichten antwortet und selbst welche abschickt.

Momentan ist es wie folgt aufgebaut:

Prozess 1:
Schleife:
-Zuhören / Warten
-Antworten auf Sendeadresse
Prozess 2:
Button Event:
-Broadcast Abschicken

Dies soll alles auf den Port 15000 geschehen.
Eine eigentlich eine einfache Geschichte, habe ich auch schon in dotNet umgesetzt und funktionierte.

Nur habe ich in Java meine Probleme. (Bin auch kein Java Spezialist)
Mein Problem liegt beim Prozess 2. Ich bekomme diesen Fehler: android.os.NetworkOnMainThreadException.
Meine frage ist, wie löst man dieses Problem?
Ist das ein Plattform bedingtes Problem?

Die Umsetzung gilt hier für Android und soll dann auch für Linux verwendet werden.

Ich hoffe Ihr könnt mir helfen.

MfG

Java:
private static final int PORT = 15000;

    private final HashMap<String, Request> messages;
    private final String deviceName;
    private final Thread listener = new Thread(this);

    private DatagramSocket udpSocket = null;
    private boolean state = true;

    public EchoServer() {
        messages = new HashMap<>();
        deviceName = Build.MODEL;
        try {
            udpSocket = new DatagramSocket(PORT);
        } catch (SocketException e) {
            e.printStackTrace();
        }
    }
    public void run() {
        String msg;
        try {
            while (state) {
                byte[] buf = new byte[256];
                DatagramPacket packet = new DatagramPacket(buf, buf.length);

                udpSocket.receive(packet);
                msg = new String(packet.getData()).trim();

                if (!msg.equals(deviceName)) {
                    if (!messages.containsKey(msg) || Objects.requireNonNull(messages.get(msg)).address != packet.getAddress()) {
                        Request request = new Request();
                        request.address = packet.getAddress();
                        request.interfaceAddress = packet.getSocketAddress();
                        request.client = msg;
                        request.time = new Date().getTime();

                        if (messages.containsKey(msg)) {
                            messages.replace(msg, request);
                        } else {
                            messages.put(msg, request);
                        }
                    }
                    System.out.print(msg);
                    String data = "aw:" + deviceName;

                    byte[] dataByte = data.getBytes();

                    DatagramPacket datagramPacket = new DatagramPacket(dataByte,dataByte.length,packet.getAddress(),PORT);
                    udpSocket.send(datagramPacket);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
            state = false;
        }
    }
    public void sendRequest(){ //<---------------------------- ausgelöst durch Prozess 2-------------------------------
        byte[] dataByte = deviceName.getBytes();

        DatagramPacket datagramPacket = new DatagramPacket(dataByte,dataByte.length);
        try {
            datagramPacket.setAddress(InetAddress.getByName("255.255.255.255"));
            udpSocket.send(datagramPacket);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 

Jw456

Top Contributor
Unter Android Netzwerk Zugriffe nicht im Main Thread , müssen in einen eigen Thread beim Desktop Java ist das anders da geht das unser Android ab Version 3.0 nicht mehr.
 
Beste Antwort
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Socket MultiThreading Netzwerkprogrammierung 7
C Multithreading Client / Server erklärt Netzwerkprogrammierung 11
P Beispiel zu Multithreading Server Netzwerkprogrammierung 2
S HTTP Grundlegende Fragen zu java multithreading & Glassfish Netzwerkprogrammierung 3
C Server mit Multithreading (Thread-Pool) Netzwerkprogrammierung 2
G Nullpointer Exception - Multithreading Netzwerkprogrammierung 25
K Multithreading Netzwerkprogrammierung 10
FrankenDerStein HTTP Https Server Bibliothek für Linux und Android gesucht. Netzwerkprogrammierung 7
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
Tobero Java serversocket nicht nur zuganglich für localhost Netzwerkprogrammierung 6
T Brauche Hilfe beim GET-String für HttpURLConnection Netzwerkprogrammierung 4
F Server für Java Applikationen Netzwerkprogrammierung 16
B Webview für Anwendung Netzwerkprogrammierung 7
M Sicheres Login-System für App implementieren Netzwerkprogrammierung 6
J Netty umsetzung für ein Protokoll Netzwerkprogrammierung 1
J ERM für kleine Verwaltungsdatenbank Netzwerkprogrammierung 2
H Machbarkeitsfrage: TCP/IP Client (z.B. Netty) für Java Web Applcation Netzwerkprogrammierung 1
Messoras Launcher für mein Spiel Netzwerkprogrammierung 7
F Einfaches Gateway für Log-Files Netzwerkprogrammierung 1
P RMI - Neue eigene Instanz für jeden Aufruf auf nicht serialisierbares Objekt - wie? Netzwerkprogrammierung 0
P PPTP Protokoll für JAVA Netzwerkprogrammierung 14
T FTP Wie Notwendigkeit für "rekey" klientenseitig detektieren? Netzwerkprogrammierung 3
S Webserver für Jar File Netzwerkprogrammierung 4
G Socket Socket verbindung für Chat System Netzwerkprogrammierung 3
V Templates für Java Client rabbitmq Netzwerkprogrammierung 4
M Erreichbar für alle zu sein Netzwerkprogrammierung 9
M Server nur für eine Aufgabe Netzwerkprogrammierung 2
N Selbes URL Objekt für alle Requests nutzen Netzwerkprogrammierung 7
T uberspace.de als (v)root-Ersatz für kleinere Java-Anwendungen? Netzwerkprogrammierung 12
L Proxy für Dateidownload? Netzwerkprogrammierung 3
K HTTP Eigener Http Response für Datei-Download Netzwerkprogrammierung 4
D Socket Leitstelle für Funkspiel Netzwerkprogrammierung 8
F Java-Beispielcode für Zeroconf (ähnlich Apple Bonjour) Netzwerkprogrammierung 7
I HTTP S - Zertifikate+Cockies für Form-basierten Login Netzwerkprogrammierung 2
Ollek Socket Sucher passende Server/Client Lösung für meine Anwendung Netzwerkprogrammierung 2
M Gleicher Port für Senden und Empfangen ? Netzwerkprogrammierung 17
N RMI Einstellungen für "übers Internet" Netzwerkprogrammierung 8
F SSL-Zertifikate für viele Nutzer? Netzwerkprogrammierung 8
K Byte für Byte aus InputStream lesen Netzwerkprogrammierung 5
S wie stell man die classpath für JARs? Netzwerkprogrammierung 3
M Bestimmte Klassen für Netzwerkchecks gesucht Netzwerkprogrammierung 11
M ClassLoader für Axis2 setzen Netzwerkprogrammierung 15
M Welches Speicherformat für News-Database?? Netzwerkprogrammierung 2
Shoox VPN-Verbindung für Datenbankzugriff Netzwerkprogrammierung 2
P Proxy für Anwendung setzten Netzwerkprogrammierung 3
T Bezeichner "end of line" für die Funktion readline Netzwerkprogrammierung 5
A DataGramsocket Übertragungsproblem im Internet (IPs für Voip) Netzwerkprogrammierung 5
E Userliste für Chat Applet Netzwerkprogrammierung 4
S HTTP Kleines Programm für den Routerneustart Netzwerkprogrammierung 3
L Zeitspanne für erneutes senden Netzwerkprogrammierung 16
L Socket Chat Server für mehrere Clients Netzwerkprogrammierung 7
F Netzwerkprogrammierung für Anfänger Netzwerkprogrammierung 2
J Framework/ Muster für Chat-ähnliches Programm gesucht Netzwerkprogrammierung 2
B Variablen ausrichten für Übertragung Netzwerkprogrammierung 2
D FTP Pfadangabe für ftp-upload funktioniert nicht Netzwerkprogrammierung 5
K Getrennte Rechner für RMI-Server/RMI-Registry, bzw. Alternativen? Netzwerkprogrammierung 5
dayaftereh HTTPCleint und HTMLparser für hTTpBot Netzwerkprogrammierung 2
E Socket Client-Applikation mit GUI für Internet IO-Platine Netzwerkprogrammierung 2
0din Grundlage für Bluetooth Netzwerkprogrammierung 5
N "Jungfernflug" der Socketprogrammierung für ein Mühlespiel Netzwerkprogrammierung 8
F Empfehlung für embedded Webserver Netzwerkprogrammierung 10
W Bibliothek für Certificate Management Protocol (CMP) Netzwerkprogrammierung 3
O Client/Server für Ticker Netzwerkprogrammierung 2
J Stubs für SOAP-Webservice generieren. Ich bekomme es einfach nicht hin... Netzwerkprogrammierung 3
dayaftereh Bester Stream für ein Spiel? Netzwerkprogrammierung 15
data89 Sockets: ein alter Hut - für Euch - für mich nicht! Netzwerkprogrammierung 10
G FileDialog für FTP Client Netzwerkprogrammierung 2
P Welches Protokoll für RMI verwenden? Netzwerkprogrammierung 10
H RCON Tool für Gameserver Netzwerkprogrammierung 11
A Wichtig für einen Chat? Netzwerkprogrammierung 4
D Was für Verbindungen mit Socket möglich? Netzwerkprogrammierung 2
S Realisierung eines Netzwerkcodes für ein Strategiespiel Netzwerkprogrammierung 7
G Datagram-Sockets für UDP-Kommunikation Netzwerkprogrammierung 2
W Was für ein Stream soll ich verwenden? Netzwerkprogrammierung 8
A Rezept für Webservices Netzwerkprogrammierung 5
I unc pfad für die klasse file? Netzwerkprogrammierung 4
P eine BufferedReader für alles ankommende Netzwerkprogrammierung 2
T Filter für Input UND OutputStream Netzwerkprogrammierung 4
T Welches Netzwerk ist am bestern für. Netzwerkprogrammierung 2
G server für mein spiel. Netzwerkprogrammierung 5
M Log In Programm für Seiten Netzwerkprogrammierung 2
G Netzwerkprogrammierung für spiele Netzwerkprogrammierung 2
A IRC-Server für das lokale Netzwerk? Netzwerkprogrammierung 12
C Einfacher Filedownload mit Sockets geht nicht für pdffiles Netzwerkprogrammierung 16
S Server für Internetspiel Netzwerkprogrammierung 2
G Objecte für Kommunikation nutzen Netzwerkprogrammierung 2
J Java Programm für Upload von Dateien per HTTP Netzwerkprogrammierung 7
S Voreinstellungen für JavaMail Netzwerkprogrammierung 2
S Idee für Projekt auf Agentenbasis Netzwerkprogrammierung 8
S Suche API für einfachen HTTP-Zugriff. Netzwerkprogrammierung 17
G benötige Beispiel für parallel ablaufende Threads Netzwerkprogrammierung 3
M RMI - Ein Objekt für Alle? Netzwerkprogrammierung 5
Z Protokoll für Schiffeversenken Netzwerkprogrammierung 5
T Kann man jeden Port für Programm verwenden? Netzwerkprogrammierung 2
R proxy für java anwendung angeben [resolved] Netzwerkprogrammierung 15
B Wie Router einstellen für CLient-Server-Programm? Netzwerkprogrammierung 4
R PPTP Protokoll für JAVA Netzwerkprogrammierung 3
Icewind Klasse für DNS Anfragen Netzwerkprogrammierung 14
P Welche Art von Sockets für ein Spiel? Netzwerkprogrammierung 3
M Socket Verbindungen für einen Chat Netzwerkprogrammierung 10

Ähnliche Java Themen

Neue Themen


Oben