OVH Cloud OVH Cloud

ServerSocket.accept() & sous-classe de Socket

4 réponses
Avatar
oziris
bonjour,


- Pourquoi est-il impossible de faire

--- code ---
ServerSocket serverSocket =3D new ServerSocket(11000);
MySocket socket =3D serverSocket.accept();
--- /code ---

o=F9 MySocket est une extension de la classe java.net.Socket ?


- Quel est le moyen d'y parvenir sans devoir passer par une
encapsulation de type

MySocket mySocket =3D new MySocket(java.net.Socket socket) ?


Merci d'avance pour vos lumi=E8res.

-o--

4 réponses

Avatar
Pierre Gilquin
Ca pourrait passer avec un "casting" :

MySocket socket = (MySocket )serverSocket.accept();


"oziris" a écrit dans le message de news:

bonjour,


- Pourquoi est-il impossible de faire

--- code ---
ServerSocket serverSocket = new ServerSocket(11000);
MySocket socket = serverSocket.accept();
--- /code ---

où MySocket est une extension de la classe java.net.Socket ?


- Quel est le moyen d'y parvenir sans devoir passer par une
encapsulation de type

MySocket mySocket = new MySocket(java.net.Socket socket) ?


Merci d'avance pour vos lumières.

-o--
Avatar
oziris
Vous vous doutez bien que j'y avais pensé :-) Mais cela ne marche pas.
Il y a peut etre qqch à faire avec java.net.SocketImpl....
Avatar
Fabien Bergeret
oziris wrote:
Vous vous doutez bien que j'y avais pensé :-) Mais cela ne marche pas.
Il y a peut etre qqch à faire avec java.net.SocketImpl....

Alors, faut creer une classe MySocket heritant de SocketImpl, puis creer

une classe MySocketImplFactory qui implemente SocketImplFactory, et
enfin appeler la methode statique setSocketImplFactory de la classe Socket.
C'est tout ! :-)

Avatar
oziris
Merci beaucoup Fabien !