आप मुझे इस अपवाद से छुटकारा पाने के लिए मदद कर सकते हैं:मैं सॉकेटएक्सप्शन को कैसे रोकूं: "डब्लूएसएसीसीएनलब्लॉकिंग कॉल को कॉल करके अवरुद्ध करने वाला ऑपरेशन बाधित होने से बाधित था?"
System.Net.Sockets.SocketException:
"एक अवरुद्ध आपरेशन एक कॉल से बाधित WSACancelBlockingCall के लिए गया था" क्या नीचे दिया गया कोड करता है: सर्वर पर यूडीपी संदेश भेजता है और उत्तर (एनएके या एसीके)
कोड जो अपवाद फेंकता है:
m_receiveBytes = m_receiver.Receive(ref m_from);
कोड:
public partial class _Default : System.Web.UI.Page
{
static readonly object lockScheduleIem = new object();
IPAddress m_AddressSend;
IPAddress m_AddressRecieve;
int m_groupPortSend;
int m_groupPortReceive;
IPEndPoint m_IPAddressSend;
IPEndPoint m_IPAddressReceive;
Byte[] m_receiveBytes;
Thread m_thread;
UdpClient m_receiver;
ManualResetEvent m_mre;
UdpClient m_sender;
IPEndPoint m_from;
protected void Page_Init(object sender, EventArgs e)
{
m_AddressSend = IPAddress.Parse("10.43.60.177");
m_AddressRecieve = IPAddress.Parse("10.43.60.99");
int.TryParse("60200", out m_groupPortSend);
int.TryParse("206", out m_groupPortReceive);
m_IPAddressSend = new IPEndPoint(m_AddressSend, m_groupPortSend);
m_IPAddressReceive = new IPEndPoint(m_AddressRecieve, m_groupPortReceive);
m_mre = new ManualResetEvent(false);
m_from = new IPEndPoint(IPAddress.Any, 0);
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
try
{
TimeSpan timeout;
timeout = new TimeSpan(0, 0, 0, 0, 5000);
m_sender = new UdpClient();
m_receiveBytes = null;
m_receiver = new UdpClient(m_IPAddressReceive);
m_thread = new Thread(new ThreadStart(ThreadProc));
m_thread.Start();
string str = string.Empty;
using (StreamReader sr = new StreamReader(@"C:\UDPmsgArchive\UDPmsg_Of_2011_10_18_13_7_33_968_634545400539687500.xml"))
str = sr.ReadToEnd();
byte[] XMLbytes = Encoding.ASCII.GetBytes(str);
m_sender.Send(XMLbytes, XMLbytes.Length, m_IPAddressSend);
m_mre.WaitOne(timeout, true);
m_mre.Reset();
m_receiver.Close();
if (m_receiveBytes != null)
Response.Write(Encoding.ASCII.GetString(m_receiveBytes, 0, m_receiveBytes.Length));
else
Response.Write("string.Empty");
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}
public void ThreadProc()
{
try
{
m_receiveBytes = m_receiver.Receive(ref m_from); // ERROR HERE
m_mre.Set();
m_receiver.Close();
}
finally
{
m_mre.Set();
}
}
}
सच की सराहना की, मैं अपने सुझाव की कोशिश करेंगे, और मैं आप प्रतिक्रिया – user852194
हाय जिम दूँगा मैं नीचे अपना तर्क की कोशिश लेकिन दुर्भाग्य से अब भी वही त्रुटि की है। – user852194
@ user852194: आपको प्राप्त सटीक अपवाद क्या है? वास्तव में अपवाद को पकड़ने वाला 'पकड़' है? –