2012-06-14 16 views
8

मैं कच्चे टीसीपी पैकेट प्राप्त करना चाहता हूं और फिर इसे उसी वर्कलोड के साथ वापस भेजना चाहता हूं।सी # में कच्चे टीसीपी पैकेट कैसे प्राप्त करते हैं?

वह कुछ इस तरह दिखना चाहिए:

void OnPacketReceived(TcpPacket p) 
{ 
    byte [] body = p.GetBody(); 
} 

नोट: मैं टीसीपी पैकेट और नहीं ईथरनेट फ्रेम की जरूरत है।

+0

मैं 100% गलत हो सकता है, लेकिन मुझे यकीन है कि अगर यह प्रबंधित कोड के साथ क्या करना संभव है नहीं कर रहा हूँ। जहां तक ​​मुझे पता है कि सी # में सॉकेट लाइब्रेरी विशेष रूप से धाराओं का उपयोग करती है, इस प्रकार पैकेट सीमाओं को दूर कर रही है। –

+0

अच्छी तरह से देखते हैं कि कोई इसे क्रैक कर सकता है या नहीं। –

+2

क्या आपने http://pcapdotnet.codeplex.com/ पर देखा है यह WinPcap के आस-पास एक .net wrapper है। –

उत्तर

6

यदि आप सॉकेट को कच्चे सॉकेट के रूप में कार्यान्वित करते हैं, तो आपके पास पूरे पैकेट तक पहुंच है (और वास्तव में पैकेट के बारे में सबकुछ संभालना चाहिए)।

सॉकेट बनाने के दौरान सॉकेट टाइप। रॉ और प्रोटोकॉल टाइप टाइप करें।

बस जागरूक रहें कि यदि आप अपनी सॉकेट को इस तरह कार्यान्वित करते हैं तो आपको टीसीपी के विवरणों को संभालना होगा। http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx

+0

+1: मैंने यह तरीका यह जांचने के लिए किया है कि एक टीसीपी पैकेट के शीर्षलेख में चेकसम है या नहीं (क्योंकि यह अनिवार्य नहीं है)। –

+0

@AllonGuralnek क्या आप कृपया कोड साझा कर सकते हैं? या कम से कम यह निर्धारित करने के लिए कि क्या हासिल किया जाना है? –

+0

@ डोडेक्सहेड्रॉन - क्या आप 100% सकारात्मक हैं कि अगर मैं कच्चे सॉकेट को जोड़ता हूं तो मुझे सीधे टीसीपी पैकेट तक पहुंच मिलती है? (यह वास्तव में सवाल है)। यदि आप सुनिश्चित हैं कि आप कृपया पुष्टि कर सकते हैं और मैं इसे उत्तर के रूप में चिह्नित करता हूं। धन्यवाद। –

0

आप पैकेट स्निफर उपयोग करने के लिए जहां आप अपनी पसंद के और उस के आधार पर फिल्टर का प्रयोग किया भी प्रतिक्रिया कर सकते हैं कर सकते हैं की जरूरत है:

संदर्भ के लिए, सॉकेट वर्ग के बारे में MSDN प्रलेखीकरण है।

WinPcap के आसपास नेट रैपर आपके लिए सहायक साबित हो सकता है।

2

आप pcapDotNet लाइब्रेरी का उपयोग कर सकते हैं।

https://pcapdotnet.codeplex.com/

+0

उपयोगी पुस्तकालय, सुझाव के लिए धन्यवाद। :) –

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