public IAsyncResult BeginGetFrame(EyeIndex eyeId, AsyncCallback callback) { if (m_state == SensoNetworkState.SENSO_DISCONNECTED) { doConnect(); } if (m_state != SensoNetworkState.SENSO_CONNECTED || IsReceiving) { return(null); } var m_frameResult = new FrameGetResult(callback); var outBuf = BitConverter.GetBytes((Int32)eyeId); //var writeCB = new AsyncCallback(OnWriteResult); IsReceiving = true; try { m_stream.Write(outBuf, 0, 4); DoRead(m_stream, m_frameResult); } catch (Exception ex) { Disconnect(); } return(m_frameResult); }
private void DoRead(NetworkStream aStream, FrameGetResult cb) { var readCB = new AsyncCallback(OnReadResult); try { aStream.BeginRead(cb.frameBytes, cb.bufOffset, RECV_BUFFER_SIZE - cb.bufOffset, readCB, cb); } catch (IOException ex) { Debug.LogError("Socket read exception: " + ex.Message); Disconnect(); } }