मैं वर्तमान में एक ऐप्स सर्वर विकसित कर रहा हूं। मैं AcceptAsync विधि का उपयोग करना चाहता हूं। मुझे त्रुटि मिली "ऑब्जेक्ट रेफरेंस ऑब्जेक्ट के उदाहरण पर सेट नहीं है।" ReceiveAsync विधि को कॉल करते समय। अगर कोई इस समस्या के साथ आया है और इसका समाधान मिला है?सी # ReceiveAsync त्रुटि
public class AppServer
{
public void Start()
{
Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
serverSocket.Bind(new IPEndPoint(IPAddress.Any, 12345));
serverSocket.Listen(100);
SocketAsyncEventArgs e = new SocketAsyncEventArgs();
e.Completed += new EventHandler<SocketAsyncEventArgs>(e_Completed);
bool raiseEvent = serverSocket.AcceptAsync(e);
if (!raiseEvent)
AcceptCallback(e);
}
void e_Completed(object sender, SocketAsyncEventArgs e)
{
AcceptCallback(e);
}
private void AcceptCallback(SocketAsyncEventArgs e)
{
SocketAsyncEventArgs readEventArgs = new SocketAsyncEventArgs();
readEventArgs.Completed += new EventHandler<SocketAsyncEventArgs>(readEventArgs_Completed);
Socket clientSocket = e.AcceptSocket;
bool raiseEvent = clientSocket.ReceiveAsync(readEventArgs); // <-- Error goes here
if (!raiseEvent)
ReceiveCallback(readEventArgs);
}
void readEventArgs_Completed(object sender, SocketAsyncEventArgs e)
{
ReceiveCallback(e);
}
private void ReceiveCallback(SocketAsyncEventArgs e)
{
}
}
मुझे लगता है कि क्या आप उस लाइन पर ब्रेकपॉइंट डालते हैं तो क्लाइंट सॉकेट (और इसलिए ई.एसेप्टस्केट) शून्य है? E.SocketError वापस क्या करता है? – Rich
मैं समस्या को पुन: उत्पन्न करने में सक्षम हूं और 'क्लाइंट सॉकेट' * नहीं * 'शून्य 'है, मैं इसे समझने में असमर्थ हूं। – svick