public override void handle_work(AsyncWork ar) { byte [] buffer = (byte [])ar.item(); // Craete a new timer and send the buffer //AsyncTimer t = new AsyncTimer(); //t.open(this, 0); //t.work(1, buffer); // start a new work m_async_send.send(buffer); //m_async_work.work(); m_event_queue.getQ(ar); }
public virtual int open(Socket sock) { m_sock = sock; // Setting non-blocking mode has no effect on async calls //sock.Blocking = false; // Issue the first work m_async_work.open(this); m_event_queue.getQ(m_async_work); //m_async_work.work(); //m_event_queue.getQ(m_async_work); m_async_receive.open(this, m_sock); m_async_init.open(this, m_sock); m_async_send.open(this, m_sock); // Begin reading bytes from the socket and echo them all back byte [] buffer = new byte[128]; m_async_receive.receive(buffer); byte [] message = new byte[128]; message = Encoding.ASCII.GetBytes("hello"); m_async_init.send(message); return(0); }