private async Task GetMovement() { if (!_tcp.Connected) { _reader.Stop(); Console.WriteLine($"Movement detector no longer connected."); return; } if (_tcp.AvailableData <= 0) { return; } await SendMovementPictures(_tcp.Read()); }
public void CanReadAppPattern() { using var connector = new TcpConnector(out ushort port); using var connectingClient = new TcpReader(IPAddress.Any, port); while (connector.ConnectedClientsCount <= 0) { Thread.Sleep(10); } string sendingString = "This is supposed to be image data."; connector.Write(BitConverter.GetBytes((ushort)sendingString.Length)); connector.Write(Encoding.UTF8.GetBytes(sendingString)); Assert.AreEqual(sendingString, Encoding.UTF8.GetString(connectingClient.Read())); }
public void CanReadWriteData() { TcpReader connectingClient = null; using var connector = new TcpConnector(out ushort port); connector.ClientConnected += Continue; connectingClient = new TcpReader(IPAddress.Any, port); bool finished = false; int? receivedAtClient = default; // int receivedAtListener = default; void Continue(object sender, NetworkStream e) { //Write to client / Read from client e.WriteByte(123); receivedAtClient = connectingClient.Read(1)[0]; //Write to listener / Read from listener // connectingClient?.GetStream().WriteByte(213); // receivedAtListener = e.ReadByte(); finished = true; } while (!finished) { Thread.Sleep(10); } Assert.AreEqual(123, receivedAtClient); // Assert.AreEqual(213, receivedAtListener); connectingClient?.Dispose(); }
public void TcpReader_WhenSeveralDataMessageSentAcrossMoreThanOneWriteAndNoMessageSeperators_ThenNoMessagesIsObserved(int tcpReaderBufferSize) { //Arrange _tcpReader = new TcpReader(_serverSideTcpClient, new MessageParser(MessageSeperator), tcpReaderBufferSize); const string dataToSend = DataMessage; //Act var streamWriter = new StreamWriter(_tcpClient.GetStream()); _tcpReader.Read().Subscribe(data => { _stringDataReturned += data; }, _completed.Set); streamWriter.Write(dataToSend); streamWriter.Flush(); streamWriter.Write(dataToSend); streamWriter.Flush(); streamWriter.Close(); //Assert _completed.Wait(); Assert.AreEqual(string.Empty, _stringDataReturned); }
public void TcpReader_WhenDataMessageSentAndMessageSeperatorSentIn2Fragments_Then1MessagesIsObserved(int tcpReaderBufferSize) { //Arrange const string dataToSend = DataMessage; _tcpReader = new TcpReader(_serverSideTcpClient, new MessageParser(MessageSeperator), tcpReaderBufferSize); //Act var streamWriter = new StreamWriter(_tcpClient.GetStream()); _tcpReader.Read().Subscribe(data => { _stringDataReturned += data; }, _completed.Set); streamWriter.Write(dataToSend); streamWriter.Flush(); streamWriter.Write(MessageSeperator.Substring(0,2)); streamWriter.Flush(); streamWriter.Write(MessageSeperator.Substring(2, MessageSeperator.Length-2)); streamWriter.Flush(); streamWriter.Close(); //Assert _completed.Wait(); Assert.AreEqual(dataToSend, _stringDataReturned); }
public void TcpReader_WhenDataIsSentToStreamWithFullMessageSeperator_ThenDataIsObserved(int tcpReaderBufferSize, string dataToSend, string dataToExpect) { //Arrange _tcpReader = new TcpReader(_serverSideTcpClient, new MessageParser(MessageSeperator), tcpReaderBufferSize); //Act var streamWriter = new StreamWriter(_tcpClient.GetStream()); _tcpReader.Read().Subscribe(data => { _stringDataReturned += data; }, _completed.Set); streamWriter.Write(dataToSend); streamWriter.Flush(); streamWriter.Close(); //Assert _completed.Wait(); Assert.AreEqual(dataToExpect, _stringDataReturned); }