I am currently developing an application server. I would like to use the AcceptAsync method. I got the error "The reference to the object is not installed in the instance of the object." when calling the ReceiveAsync method. If such a problem arises and you get a solution?
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);
source share