ServerSocket.accept Rückgabetyp casten

Thrill

Neues Mitglied
Hi,

Ich schreibe gerade an einer Erweiterung der ServerSocket und Socket Objekte, die es ermöglicht asynchron Verbindungen zu akzeptieren und Daten zu schreiben und zu empfangen. Dafür habe ich zwei Objekte geschrieben, die von ServerSocket bzw. Socket erben, und die Methode beginAccept in meine neue ServerSocket-Klasse implementiert und versucht accept zu überschreiben.

Die accept und beginAccept Methoden sollen aber kein java.net.Socket Objekt, sondern mein net.async.Socket Objekt zurückliefern. Die super.accept Methode liefert das allerdings nicht und casten kann ich es auch nicht.

Ich würde das gerne ohne einen Wrapper realisieren. Vorschläge?

Vielen Dank im voraus.
 

Lumaraf

Bekanntes Mitglied
Das klingt für mich erstmal danach als ob du etwas implementieren möchtest was java.nio.channels.ServerSocketChannel bzw java.nio.channels.AsynchronousServerSocketChannel bereits anbieten. Wofür genau brauchst du die Methoden unbedingt auf dem Socket?
 
G

Gast2

Gast
Moin,

ein net.async.Socket ist ein Socket - aber - ein Socket ist KEIN net.async.Socket.

Du bekommst eine Instanz von Socket zurück un die kann man nicht casten - ein Socket ist ein Socket und bleibt ein Socket. Das einzige was Du machen kannst ist Dein net.async.Socket als Wrapper umbauen dem Du bei der Instanz den Socket übergibst. Dann kannst Du intern alles auf den Socket umbiegen und von außen hast Du Dein net.async.Socket.

hand, mogel
 

Thrill

Neues Mitglied
Das klingt für mich erstmal danach als ob du etwas implementieren möchtest was java.nio.channels.ServerSocketChannel bzw java.nio.channels.AsynchronousServerSocketChannel bereits anbieten. Wofür genau brauchst du die Methoden unbedingt auf dem Socket?

Hauptsächlich um mich daran zu probieren.

Moin,

ein net.async.Socket ist ein Socket - aber - ein Socket ist KEIN net.async.Socket.

Du bekommst eine Instanz von Socket zurück un die kann man nicht casten - ein Socket ist ein Socket und bleibt ein Socket. Das einzige was Du machen kannst ist Dein net.async.Socket als Wrapper umbauen dem Du bei der Instanz den Socket übergibst. Dann kannst Du intern alles auf den Socket umbiegen und von außen hast Du Dein net.async.Socket.

hand, mogel

Ich habe tatsächlich eine Möglichkeit gefunden. Es gibt die Methode java.net.ServerSocket.implAccept(Socket s) der man ein leeres von java.net.Socket abgeleitetes Objekt übergeben kann, dass dann verbunden wird.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H ServerSocket.accept() unterbrechen Netzwerkprogrammierung 3
G ServerSocket.accept() überschreibt IP-Adresse Netzwerkprogrammierung 4
C serversocket.accept() klappt nicht Netzwerkprogrammierung 10
M ServerSocket.accept() abbrechen Netzwerkprogrammierung 8
dayaftereh serverSocket.accept(); Wecken Netzwerkprogrammierung 2
E Custom E Mail Adresse mithilfe Serversocket oder ähnliches Netzwerkprogrammierung 21
Tobero Java serversocket nicht nur zuganglich für localhost Netzwerkprogrammierung 6
D ServerSocket - Socket Verbindungsart Netzwerkprogrammierung 3
J 1 Socket - 2 Serversocket Netzwerkprogrammierung 4
J Client - Serversocket Netzwerkprogrammierung 1
Seikuassi Socket ServerSocket mehrmals erzeugen Netzwerkprogrammierung 1
cezary Socket ServerSocket starten über GUIIm unterstehenden Code versuche Netzwerkprogrammierung 6
J ServerSocket sauber beenden Netzwerkprogrammierung 3
TheJavaKid ServerSocket beendet mit PuTTy Netzwerkprogrammierung 9
P Socket Daten senden mit ServerSocket? Netzwerkprogrammierung 2
4 Socket Kann kein ServerSocket erstellen Netzwerkprogrammierung 4
D Socket ServerSocket Push Netzwerkprogrammierung 5
Tobse HTTP ServerSocket HTTP Netzwerkprogrammierung 4
X FAQ Frage - Netzwerkgrundlagen - ServerSocket und Socket Netzwerkprogrammierung 4
M Wahrnehmen, dass ServerSocket geschlossen wurde Netzwerkprogrammierung 14
T ServerSocket bleibt beim lesen von Input hängen Netzwerkprogrammierung 2
Schandro Herausfinden ob hinter einem Port bereits ein ServerSocket steckt Netzwerkprogrammierung 2
2 Class mit ServerSocket erbt von Thread? Netzwerkprogrammierung 3
T Java Socket und ServerSocket über Internet-IP? Netzwerkprogrammierung 9
G Frage zu Serversocket-Beispiel aus der FAQ Netzwerkprogrammierung 17
D Komisches Fenster bei Serversocket Netzwerkprogrammierung 2
M Kommunikation zwischen ServerSocket und Socket Netzwerkprogrammierung 2
F ServerSocket im internet zugänglich machen Netzwerkprogrammierung 15
H ServerSocket -> Zugriff nur von localhost Netzwerkprogrammierung 6
P Serversocket schmeißt immmer EOFEXCEPTION Netzwerkprogrammierung 2
A serversocket soll anfrage vom handy entgegennehmen Netzwerkprogrammierung 4
P Problem mit Socket und ServerSocket Netzwerkprogrammierung 2
S ServerSocket merkt nicht, wenn keiner mehr da ist Netzwerkprogrammierung 8
J ServerSocket vs. DatagramSocket Netzwerkprogrammierung 2
A ServerSocket prinzipielle Frage Netzwerkprogrammierung 5
D Problem ServerSocket global Netzwerkprogrammierung 3
J ServerSocket schließen / öffnen im Programmverlauf Netzwerkprogrammierung 4
G einfache Frage zu ServerSocket ... Netzwerkprogrammierung 5
R Socket bei server.accept(); gehts nicht weiter Netzwerkprogrammierung 2
C Socket Identifikation des clients nach der accept() Methode Netzwerkprogrammierung 2
G "Address already in use" accept() abbrechen? Netzwerkprogrammierung 4
X Java6 - RMI - "SocketTimeoutException: Accept timed out Netzwerkprogrammierung 6
J Socket.Accept() unterbrechen? Netzwerkprogrammierung 7
J server.accept() Netzwerkprogrammierung 10
N Server accept-Methode zeitlich begrenzen Netzwerkprogrammierung 2
M den Server aus seinem accept-Zustand holen Netzwerkprogrammierung 3
J server.accept() unterbrechen Netzwerkprogrammierung 10

Ähnliche Java Themen

Neue Themen


Oben