Einfacher TCP Client (non blocking)

Fohnbit

Top Contributor
Hallo!

Welche Library wäre für eine einfache TCP Client am besten?
Folgende Voraussetzungen:
  1. nonblocking des Main Programems
  2. Senden und empfangen über den TCP Client
  3. Verbindungsabbrüche und Timeouts müssen abgefangen werden

Ich habe https://github.com/nsiatras/extasys einmal ausprobiert.
Da bekomme ich aber das Threading nicht hin. Erstellt über eine Inner class:
Java:
private class TCPClient extends Extasys.Network.TCP.Client.ExtasysTCPClient  {

        private InetAddress fServerIP;
        private int fPort;
        private boolean forceStopping;

        public TCPClient(String name, String description, InetAddress remoteHostIP, int remoteHostPort,
                int corePoolSize, int maximumPoolSize) {

            super("Huawei", "", 1, 1);
            fServerIP = remoteHostIP;
            fPort = remoteHostPort;

            TCPConnector connector = super.AddConnector("Main Connector", fServerIP, fPort, 8192);
            try {
                connector.fConnection.setSoTimeout(10000);
                connector.fConnection.setKeepAlive(true);
            } catch (SocketException e) {
                e.printStackTrace();
            }

        }

        public void Connect() {
            try {
                logger.debug("Start Connection");
                forceStopping = false;
                removeAllTickers();
                updateOutputState(ENUM_STATE_STARTING);
                super.Start();
                tickOneTime(1000, TICK_POLL, true);
            } catch (Exception ex) {
                failedConnection();
            }
        }

        public void Disconnect() {
            try {
                logger.debug("Stop Connection");
                forceStopping = true;
                removeAllTickers();
                updateOutputState(ENUM_STATE_STOPPING);
                super.ForceStop();
            } catch (Exception ex) {
                System.out.println(ex.getLocalizedMessage());
            }
        }
   
        @Override
        public void OnDataReceive(TCPConnector connector, DataFrame data) {
           
            ...
            }
   
    @Override
        public void OnConnect(TCPConnector connector) {
            updateOutputState(ENUM_STATE_RUNNING);

        }

        @Override
        public void OnDisconnect(TCPConnector connector) {
            if (forceStopping) {
                updateOutputState(ENUM_STATE_STOPPED);
            } else {
                failedConnection();
            }

        }

    }

Alle Variablen können so vom Main Programm genommen werden.

Initialisierung mit:
Java:
public void onStart(boolean value) {

        if (value) {
            if (tcpClient != null) {
                tcpClient.Connect();
            } else {
                try {
                    tcpClient = new TCPClient("Huawei Inverter", "TCP Connection to Huawei inverter",
                            InetAddress.getByName(getPropertyIp()), getPropertyPort(), 1, 1);
                    tcpClient.Connect();
                } catch (UnknownHostException e) {
                    e.printStackTrace();
                }
            }

        } else {
            if (tcpClient != null)
                tcpClient.Disconnect();
        }
    }

Kann mir hier jemand bitte weiter helfen? Danke!
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
F 2 JsonArray vergleichen, geht es auch einfacher ? Allgemeine Java-Themen 3
J JUnit, TestCase vs "einfacher" Test Allgemeine Java-Themen 3
destroflyer Einfacher PHP-Interpreter Allgemeine Java-Themen 19
G einfacher Installer Allgemeine Java-Themen 3
T Geht das vielleicht noch einfacher? Allgemeine Java-Themen 7
J Selbsterstelltes Programm einfacher öffnen? Allgemeine Java-Themen 2
C JUNG Framework - einfacher Graph Allgemeine Java-Themen 7
Chris_1980 Geht das nicht auch einfacher (Arcanoid Multiball) Allgemeine Java-Themen 2
K Registry-Zugriff auch einfacher? (ORACLE_HOME auslesen) Allgemeine Java-Themen 3
T Einfacher regulärer Ausdruck Allgemeine Java-Themen 2
E einfacher taschenrechner Allgemeine Java-Themen 5
F InfluxDB Client, fehlende Referenz Allgemeine Java-Themen 5
OnDemand ApacheCommon FTP Client zuckt nicht Allgemeine Java-Themen 3
E Server Client Audio Allgemeine Java-Themen 6
E Server Client Audio Allgemeine Java-Themen 0
TonioTec Api für Datenaustausch zwischen Client und Server Allgemeine Java-Themen 0
C Java RMI Client - Server Allgemeine Java-Themen 0
S Simples Client Server Setup in Java Allgemeine Java-Themen 4
M JVM: Client Software Logging und Profiling aktivieren Allgemeine Java-Themen 1
OnDemand REST Client programmierens Allgemeine Java-Themen 4
J Soap Client mit mehreren URLs in Servlets Allgemeine Java-Themen 0
T Google Distance Matrix API Hello World/ Client Secret Allgemeine Java-Themen 3
C Hang Man Server Client Allgemeine Java-Themen 3
C Hang man mit Server/Client Allgemeine Java-Themen 2
M OOP IRC Client Allgemeine Java-Themen 3
B Web-Anwendung funktioniert mit Java 1.8, aber nicht mit Java 1.7 (auf Client) Allgemeine Java-Themen 5
D JAVA Basiertes Spiel aus dem Internet in eigenem Client laden Allgemeine Java-Themen 3
P CXF 3.0.1 WebService- Client Allgemeine Java-Themen 0
M Checksummenprüfung bei Client Server kommunikation Allgemeine Java-Themen 3
B Java Mail Client als Outlook ausgeben Allgemeine Java-Themen 2
Z Java E-Mail Client mit End-to-End-Verschlüsselung Allgemeine Java-Themen 4
E Socket Client-Server-Programmierung Allgemeine Java-Themen 44
T Java Streaming-Server & Streaming-Client Allgemeine Java-Themen 4
0 Lösungsweg Client Server Kommunikation Fehlermeldung ausgeben Allgemeine Java-Themen 12
D Client / Server Allgemeine Java-Themen 23
M HTTP Client Zertifikat sicher übertragen? Wie? Allgemeine Java-Themen 2
eskimo328 Swing Client Anwendung für MAC OS (Update Routine) Allgemeine Java-Themen 6
Z Threads Thread für einen Client Allgemeine Java-Themen 9
J Zugriff auf Poker-Client Fenster Allgemeine Java-Themen 14
G REST Client / URL Parser Allgemeine Java-Themen 2
S Java Kommandozeilen - Client Allgemeine Java-Themen 3
T JPA Entity im Client-Server-Umfeld Allgemeine Java-Themen 19
M Client für einen Webservice erstellen (ONVIF) Allgemeine Java-Themen 3
B mehrere services in einem client Allgemeine Java-Themen 10
D Versuch Server - Client anwendung Allgemeine Java-Themen 9
T Welcher Server? JSP und Client-Anwendung Allgemeine Java-Themen 4
MQue Server- Thread Client Allgemeine Java-Themen 2
D design client server Allgemeine Java-Themen 10
O binärer Suchbaum mit client server., objekte speichern. Allgemeine Java-Themen 2
F Java Server VM/ Client VM Allgemeine Java-Themen 7
J JSP Client LInk einbauen Allgemeine Java-Themen 15
J Client Allgemein Allgemeine Java-Themen 10
V Ausführung Client- oder Serverseitig? Allgemeine Java-Themen 13
A Client/Server-Anwendung Allgemeine Java-Themen 3
T Proxys: Idee für den Callback vom Server zum Client? Allgemeine Java-Themen 3
S SMTP-Limit bei Newsletter-Client Allgemeine Java-Themen 5
thE_29 Simpler FTP Client Allgemeine Java-Themen 3
G Performance Problem bei der Übertragung Server zum Client Allgemeine Java-Themen 3
J java vnc client verbessern: KeyEvent.VK_ALT keine Wirkung? Allgemeine Java-Themen 12
E NT-Anmeldung in Java Client-Applikation nutzen. JAAS ? Allgemeine Java-Themen 5
T einen SVN- oder QVCS-Client selber programmieren Allgemeine Java-Themen 2
M Tool zum autom. Client-Update Allgemeine Java-Themen 2
M kennt jemand nen gute email client in java mit imap? Allgemeine Java-Themen 3
H Datenbank an ein Java Client Server Programm anschliessen Allgemeine Java-Themen 3
A Was ist bei einem Servlet beim Client notwendig? Allgemeine Java-Themen 22
D ldap zugriff mit Java Client Allgemeine Java-Themen 2
A Daten-Synchronisation Client <-> Datenquelle (DB) ? Allgemeine Java-Themen 6
G Servlet - "Client immer am neuesten Stand" Allgemeine Java-Themen 2
G EMail Client Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben