2013-04-24 4 views
8

मेरा जावा एप्लिकेशन सीधे मेरे कंप्यूटर (उबंटू और विंडोज) के नेटवर्क इंटरफ़ेस से जुड़े बाहरी डिवाइस (ईथर कैट बस तकनीक) को नियंत्रित करना चाहिए। कोई अन्य नेटवर्क डिवाइस जुड़े नहीं हैं। आईपी ​​स्टैक के बिना मानक आईईईई 802.3 ईथरनेट फ्रेम्स पर संचार किया जाना है। डेटा भेजने के लिएटीसीपी/आईपी स्टैक के बिना जावा में ईथरनेट-फ्रेम्स कैसे भेजें

उदाहरण:

int etherType = 0x88A4; // the EtherType registered by IEEE 
byte[] macBroadcast = new byte[] {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; 
byte[] macSource = new byte[] ... ; // MAC Address of my network interface card 
byte[] buffer = ... // the data to send 

device.write(macSource, macBroadcast, etherType, buffer); 

मैंने कोशिश की JNetPcap, जो PCAP देशी पुस्तकालय का उपयोग करता है। दिया गया एपीआई ठीक था, लेकिन भारी भार पर बहुमत के मुद्दे थे, जिसने मुझे छोड़ने के लिए मजबूर किया।

netty.io भी एक उम्मीदवार था। मुझे यकीन नहीं है, लेकिन एक टीसीपी/आईपी स्टैक अनिवार्य है। क्या मैं सही हू?

क्या निम्न स्तर ईथरनेट फ्रेम्स के साथ संवाद करने के लिए अन्य विचार हैं? मैं netty.io की तरह एक शुद्ध जावा पुस्तकालय पसंद करूंगा, अगर कोई मौजूद है।

बेशक जेएनए/जेएनआई एक विकल्प भी है। लेकिन मैं सी कोड लिखना नहीं चाहता।

अन्य विकल्प?

+0

क्या आपको कोई समाधान मिला? – arrowman

उत्तर

3

ये विकल्प मैं ढूँढने में सक्षम था प्रकार हैं: - http://jnetpcap.com/

  • Jpcap जावा के लिए एक और libpcap आवरण है -

    • jNetPcap जावा के लिए एक libpcap आवरण है https://github.com/mgodave/Jpcap
    • RockSaw भेजने के लिए एक पुस्तकालय है और "कच्चे सॉकेट" का उपयोग करके आईपीवी 4 और आईपीवी 6 पैकेट प्राप्त करना - http://www.savarese.org/software/rocksaw/। से क्या मैं इसे बता सकते हैं बहुत सीमित है, और के बाद से 2007
    • Netutils libpcap और libnet का उपयोग करता छुआ नहीं किया गया है - http://code.google.com/p/netutils/

    मैं भी प्रभाव है कि jNetPcap माना जाता है के लिए टिप्पणियों को देखा है थ्रेड-सुरक्षित लेकिन अभ्यास में यह नहीं है; यानी जब यह कई धागे के साथ प्रयोग किया जाता है तो यह छोटी होती है।

  • संबंधित मुद्दे