private void Receive(byte[] message) { if (OnReceiveCallback != null) { OnReceiveCallback.Invoke(message); } }
protected virtual void HandleReceiveData(Request request, byte[] buffer, int length) { int headerLength = CLIENT_ID_LENGTH + CLIENT_ID_LENGTH; if (length < headerLength) { return; } var targetClientId = Encoding.UTF8.GetString(buffer, CLIENT_ID_LENGTH, CLIENT_ID_LENGTH); if (targetClientId != ClientId) { return; } var data = buffer.SubArray(headerLength, length - headerLength); using (new MethodUtils.Unlocker(this)) { OnReceiveCallback?.Invoke(new Request() { clientId = Encoding.UTF8.GetString(buffer, 0, CLIENT_ID_LENGTH) }, data, length - headerLength); } }
private void OnReceive(IAsyncResult result) { var socket = result.AsyncState as Socket; if (!socket.Connected || !IsUse) { return; } try { var count = socket.EndReceive(result); if (count <= 0) { // SocketLog("Close"); // Close(); // return; } else { OnReceiveCallback?.Invoke(this, m_Buffer, count); } m_Socket.BeginReceive(m_Buffer, BufferCount, BufferRemain, SocketFlags.None, OnReceive, m_Socket); } catch (Exception e) { SocketLogError(e); Close(); } }
public CommPort(string portName, int baudRate, OnReceiveCallback onReceive, OnOpenCallback onOpen) { this.onReceive = onReceive; this.onOpen = onOpen; this.commSettings = new CommLineSettings() { port = portName, baudRate = baudRate, rxTerminator = ASCII.LF, txTerminator = new ASCII[1] { ASCII.LF }, }; this.Setup(this.commSettings); }
protected override void HandleReceiveData(Request request, byte[] buffer, int length) { if (length < SESSION_ID_LENGTH) { return; } request.sessionId = Encoding.UTF8.GetString(buffer, 0, SESSION_ID_LENGTH); var data = buffer.SubArray(SESSION_ID_LENGTH, length - SESSION_ID_LENGTH); lastActiveTime = DateTime.Now; using (new MethodUtils.Unlocker(this)) { OnReceiveCallback?.Invoke(request, data, data.Length); } }
private extern static IntPtr InitDll(IntPtr hWnd, OnReceiveCallback callback);
public MainWindow() { // 初始化动态库组件 mOnReceiveCallback = new OnReceiveCallback(onReceiveCallback); m_pADB = InitDll(new WindowInteropHelper(this).Handle, mOnReceiveCallback); InitializeComponent(); }
public void ReceiveAsync(OnReceiveCallback callback) { onReceiveCallback = callback; ReceiveAsync(); }