Je dois passer un socket natif winsock créé par l'application C++ à une bibliothèque de mon application qui utilise java.net.Socket pour se connecter à un serveur. Cette application winsock prend déjà en charge la connexion de la socket. comment puis-je définir explicitement le descripteur de socket de java.net.Socket?passer le socket natif winsock au socket java
Répondre
J'ai rencontré un tel problème sous Unix, je ne sais pas si le même mécanisme fonctionne pour vous avec WinSock.
Dans notre cas, un programme en C crée un socket en utilisant un matériel spécial. Le programme C engendre le programme Java lui transmet le socket. Le programme Java construit ensuite le flux d'entrée/sortie à partir du descripteur de fichier du socket afin qu'il puisse le lire/écrire comme un socket normal.
L'extrait de code Java est ici,
Class<FileDescriptor> clazz = FileDescriptor.class;
Constructor<FileDescriptor> c;
try {
c = clazz.getDeclaredConstructor(new Class[] { Integer.TYPE });
} catch (SecurityException e) {
e.printStackTrace();
return;
} catch (NoSuchMethodException e) {
e.printStackTrace();
return;
}
c.setAccessible(true);
FileDescriptor fd;
try {
fd = c.newInstance(new Integer(socket));
} catch (IllegalArgumentException e) {
e.printStackTrace();
return;
} catch (InstantiationException e) {
e.printStackTrace();
return;
} catch (IllegalAccessException e) {
e.printStackTrace();
return;
} catch (InvocationTargetException e) {
e.printStackTrace();
return;
}
FileOutputStream os = new FileOutputStream(fd);
FileInputStream is = new FileInputStream(fd);
C'est gentil, j'ai juste besoin d'un pas de plus car je dois fournir un socket java et non des flux d'entrée/sortie. – ApriOri
- 1. erreur de socket winsock
- 2. Détacher un socket natif de la classe socket de Boost.ASIO
- 3. C++ Winsock socket non-bloquante/asynchrone UDP
- 4. Programme de socket Python vs C++ (Winsock)
- 5. app Java Socket arrêter au hasard
- 6. Programmation Java Socket
- 7. Java Socket Programmation
- 8. Java - Socket - Freeze
- 9. Une servlet peut-elle ouvrir une socket pour parler au code natif?
- 10. Socket Programmation en Java
- 11. java socket issue
- 12. Java - Envoyer le certificat par le socket
- 13. Java TCP Socket reniflage
- 14. Java Socket Testing
- 15. Acessing socket du navigateur en utilisant Winsock SPI (LSP)
- 16. Différences entre implémentations de socket winsock et BSD
- 17. Socket opération sur non-socket
- 18. setSoTimeout sur un socket client n'affecte pas le socket
- 19. Serveur de socket Java tcp avec socket client j2me
- 20. problème de programmation socket java
- 21. Java dans le navigateur ... ouverture d'une socket
- 22. Programmation de socket en Java
- 23. java socket et l'authentification proxy
- 24. TCPClient vs Socket en C#
- 25. "Impossible d'ouvrir le socket"
- 26. Problème de socket/proxy en Java
- 27. socket exception socket non connecté android
- 28. Java RMI - Problèmes d'autorisation de socket
- 29. En-tête de programmation socket Java
- 30. Java socket programming - stream get bloqué
Que voulez-vous besoin? –
cette socket native est liée à un pilote matériel spécial. – ApriOri
Je recommanderais de créer un module wrapper en C, puis d'utiliser JNI pour y accéder. –