private void DealWithFeedBack(ReadWriteObject rwObj, int count) { byte[] b = new byte[count]; Array.Copy(rwObj.ReadBytes, 0, b, 0, count); SendData(b); OnReceiveMessage?.Invoke(Message.Parser.ParseFrom(b)); }
private void AcceptTcpClientCallback(IAsyncResult ar) { TcpListener myListener = ar.AsyncState as TcpListener; TcpClient client = myListener.EndAcceptTcpClient(ar); OnReceiveMessage?.Invoke(new Message() { Name = "Server", Content = $"Connected {client.Client.RemoteEndPoint.ToString()}" }); ReadWriteObject readWriteObject = new ReadWriteObject(client); rwoList.Add(readWriteObject); readWriteObject.BeginRead(ReadCallback); AcceptConnect(); }
public IVideoConfigurationDTO ReadVideo() { return(ReadWriteObject.ReadVideo(_fileDir)); }
public ITcpConfigurationDTO ReadTcp() { return(ReadWriteObject.ReadTcp(_fileDir)); }
public void Save(IVideoConfigurationDTO videoDTO) { ReadWriteObject.Save(_fileDir, videoDTO); }
public void Save(ITcpConfigurationDTO tcpDTO) { ReadWriteObject.Save(_fileDir, tcpDTO); }
private void SendCallback(IAsyncResult ar) { ReadWriteObject readWriteObject = ar.AsyncState as ReadWriteObject; readWriteObject?.EndWrite(ar); }
private void ReadCallback(IAsyncResult ar) { ReadWriteObject readWriteObject = null; try { readWriteObject = ar.AsyncState as ReadWriteObject; int count = readWriteObject.EndRead(ar); if (count == 0) { readWriteObject.Close(); readWriteObject = null; return; } if (readWriteObject != null) { if (count > 0) { DealWithFeedBack(readWriteObject, count); } } } catch (Exception e) { if (readWriteObject != null) { OnReceiveMessage?.Invoke(new Message() { Name = "ServerError", Content = $"{readWriteObject.RemoteEndPoint}已离线" }); rwoList.Remove(readWriteObject); readWriteObject.Close(); readWriteObject = null; } else { OnReceiveMessage?.Invoke(new Message() { Name = "ServerError", Content = e.Message }); } } if (readWriteObject != null) { try { readWriteObject.BeginRead(ReadCallback); } catch (Exception e) { OnReceiveMessage?.Invoke(new Message() { Name = "ServerError", Content = $"{readWriteObject.RemoteEndPoint}已离线" }); if (readWriteObject != null) { rwoList.Remove(readWriteObject); readWriteObject.Close(); readWriteObject = null; } } } }