से लापता उत्तरों मैंने यूपीएनपी मल्टीकास्ट (विजुअल सी # 2010 एक्सप्रेस, विंडोज 7 प्रोफेशनल 64 बिट पर चलने) का परीक्षण करने के लिए एक छोटा सा कार्यक्रम बनाया। मैं अपने नेटवर्क में यूपीएनपी उपकरणों से यूपीएनपी नोटिफ़ाई संदेश प्राप्त कर सकता हूं। लेकिन जब मैं एम-सर्च संदेश भेजता हूं, तो मुझे कोई जवाब नहीं मिलता है।यूपीएनपी मल्टीकास्ट: एम-सर्च (डिस्कवरी)
मैंने आईओएस पर्यावरण पर एक ही कोड का परीक्षण किया है (आईओएस के लिए मोनोटच, मैक पर एक आईफोन सिम्युलेटर पर चल रहा है)। वहां यह ठीक चलता है और मुझे अपने यूपीएनपी उपकरणों से सभी खोज प्रतिक्रियाएं मिलती हैं। मैं अपने विंडोज प्रोग्राम से एम-सर्च संदेश भी देख सकता हूं।
ऐसा लगता है कि विंडोज (या फ़ायरवॉल?) खोज प्रतिक्रियाओं को छुपा रहा है। कोई उपाय?
IPEndPoint LocalEndPoint = new IPEndPoint(IPAddress.Any, 1900);
IPEndPoint MulticastEndPoint = new IPEndPoint(IPAddress.Parse("239.255.255.250"), 1900);
Socket UdpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
UdpSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
UdpSocket.Bind(LocalEndPoint);
UdpSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(MulticastEndPoint.Address, IPAddress.Any));
UdpSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 2);
UdpSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastLoopback, true);
Console.WriteLine("UDP-Socket setup done...\r\n");
string SearchString = "M-SEARCH * HTTP/1.1\r\nHOST:239.255.255.250:1900\r\nMAN:\"ssdp:discover\"\r\nST:ssdp:all\r\nMX:3\r\n\r\n";
UdpSocket.SendTo(Encoding.UTF8.GetBytes(SearchString), SocketFlags.None, MulticastEndPoint);
Console.WriteLine("M-Search sent...\r\n");
byte[] ReceiveBuffer = new byte[64000];
int ReceivedBytes = 0;
while (true)
{
if (UdpSocket.Available > 0)
{
ReceivedBytes = UdpSocket.Receive(ReceiveBuffer, SocketFlags.None);
if (ReceivedBytes > 0)
{
Console.WriteLine(Encoding.UTF8.GetString(ReceiveBuffer, 0, ReceivedBytes));
}
}
}
MulticastEndPoint क्या सेट है? – simonc
क्या आप वाकई आईओएस पर देखे गए एम-सर्च को अपने विंडोज प्रोग्राम में से एक है? क्या आपने अपने विंडोज बॉक्स पर एक और यूपीएनपी खोज उपकरण की कोशिश की है? –
@PavelZdenek: हाँ मुझे यकीन है। मैंने एम-सर्च संदेश पर कुछ अतिरिक्त पात्र संलग्न किए हैं, इसलिए मैं आईओएस पर संदेश को पहचान सकता हूं। –