我有一個應用程序(充當服務器)寫在c
正在原始套接字上偵聽,此套接字描述符:socket(AF_UNIX, SOCK_RAW, 0);
。 0表示IPPROTO_IP
兩個應用程序之間的原始套接字通信一個在C和一個在java
我想寫一個java代碼(充當客戶端)發送一個ip數據包到這個正在監聽的原始套接字。現在我瞭解到Java需要第三方庫來管理原始套接字。人們推薦junixsocket
和juds
,所以我會使用其中的一個,我猜。
Junixsocket確實是這樣來定義一個原始套接字:
File socketFile = new File("/path/to/your/socket");
AFUNIXSocket sock = AFUNIXSocket.newInstance();
sock.connect(new AFUNIXSocketAddress(socketFile));
所以,問題是:
是否有可能使這些2個應用程序通過這個原始套接字海誓山盟溝通?在java中,你需要建立socketfilename和path,而在c中不是強制的。我的c代碼沒有指定socketfilename或路徑,所以我不知道如何讓它們在同一個套接字上進行通信。我如何確保它們都在相同的原始套接字上發送/接收?所有這些溝通都只發生在本地!
謝謝
你是什麼意思的socketfilename?你的意思是URL,比如'localhost:8080'或'ip-address:port',這是創建套接字客戶端所必需的。 – 11thdimension
我編輯了問題以回答您的評論 – Pheonix7