我需要將由C++應用程序創建的本機winsock套接字傳遞給我的應用程序中使用java.net.Socket連接到服務器的庫。 這winsock appication已經照顧連接插座。 如何顯式設置java.net.Socket的套接字描述符?將本地winsock套接字傳遞給java套接字
1
A
回答
1
我在Unix上遇到過這樣的問題,不知道WinSock是否適用於你。
在我們的例子中,C程序使用特殊硬件創建一個套接字。 C程序衍生出Java程序將套接字傳遞給它。 Java程序然後從套接字的文件描述符構造輸入/輸出流,以便它可以像正常套接字一樣讀/寫它。
的Java代碼片斷就在這裏,
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);
+0
這很好,我只需要再向前一步,因爲我必須提供一個java套接字而不是輸入/輸出流。 – ApriOri 2010-07-08 11:24:55
相關問題
- 1. 將Winsock移植到Linux套接字
- 2. 如何將本地unix套接字映射到inet套接字?
- 3. Sails.js - 如何將套接字連接傳遞給子進程
- 4. 將套接字io連接傳遞給ajax成功函數
- 5. Java套接字到C套接字
- 6. Java套接字 - 套接字端口
- 7. java套接字SocketException套接字關閉
- 8. C++套接字-WString到Java套接字
- 9. 使用傳遞給線程的套接字時,「套接字已關閉」異常?
- 10. UDP本地套接字reliabiltiy
- 11. 從Boost.ASIO的套接字類中分離出本地套接字
- 12. 套接字程序Python vs C++(Winsock)
- 13. winsock的BSD套接字兼容包裝?
- 14. winsock客戶端套接字無效
- 15. 套接字無法綁定(C與WinSock)
- 16. 在winsock中檢索套接字協議
- 17. 在WinSock中處理異步套接字?
- 18. SO_LINGER和關閉套接字(WINSOCK)
- 19. WinSock:從套接字中刪除數據
- 20. 將java套接字客戶端移植到HTML5套接字
- 21. node.js將socket.io套接字傳遞給分支進程
- 22. 如何將節點中的套接字傳遞給集羣
- 23. 將套接字對象傳遞給Android的另一個活動
- 24. 如何將OpenSSL套接字傳遞給另一個進程
- 25. 如何通過fsockopen將會話傳遞給新套接字?
- 26. 使用套接字將PHP請求傳遞給PHP-FPM
- 27. Nodejs將服務器數據傳遞給套接字?
- 28. 將套接字傳遞給客戶端後斷開/關閉
- 29. AIR(Flex的)本地套接字連接
- 30. 連接到本地套接字
你需要什麼用的? – 2010-07-07 09:38:03
這個本地套接字綁定到特殊的硬件驅動程序。 – ApriOri 2010-07-07 09:46:28
我會建議在C中創建一個包裝模塊,然後使用JNI來訪問它。 – 2010-07-07 14:15:49