diff --git a/src/client.py b/src/client.py index 4f50a41..56b6cb7 100644 --- a/src/client.py +++ b/src/client.py @@ -57,6 +57,7 @@ class Client: output_data = file_to_send.read(self.buffer_chunk_size) writer.write(output_data) await writer.drain() + await asyncio.sleep(1) async def run_receiving_client(self, file_path='~/input.txt'): self._file_path = file_path @@ -67,10 +68,11 @@ class Client: self._working = True with open(self.file_path, 'wb') as file_to_receive: while not self.stopping: - try: - input_data = await reader.readexactly(self.buffer_chunk_size) - except asyncio.IncompleteReadError as e: - input_data = e.partial + print("reading...") + input_data = await reader.read(self.buffer_chunk_size) + if not input_data: + continue + print(input_data) file_to_receive.write(input_data) def stop(self, *_): @@ -112,9 +114,9 @@ if __name__ == '__main__': loop = asyncio.get_event_loop() client = Client( host='127.0.0.1', - port=5000, + port=(5000 if action == 'send' else 5001), ) - loop.add_signal_handler(signal.SIGINT, client.stop, loop) + # loop.add_signal_handler(signal.SIGINT, client.stop, loop) logging.info("Starting client...") if action.lower() == 'send': loop.run_until_complete(client.run_sending_client(file_path=file_path)) diff --git a/src/server.py b/src/server.py index bddcaa0..62ee758 100644 --- a/src/server.py +++ b/src/server.py @@ -72,11 +72,16 @@ class Server: async def forward_bytes(self, reader: asyncio.StreamReader, writer: asyncio.StreamWriter): self._working = True asyncio.ensure_future(self.run_reader(reader=reader)) + + async def forward_bytes2(self, reader: asyncio.StreamReader, writer: asyncio.StreamWriter): + self._working = True asyncio.ensure_future(self.run_writer(writer=writer)) async def run_server(self): reader_server = await asyncio.start_server(client_connected_cb=self.forward_bytes, host=self.host, port=self.port) + writer_server = await asyncio.start_server(client_connected_cb=self.forward_bytes2, + host=self.host, port=self.port+1) async with reader_server: await reader_server.serve_forever() return @@ -107,7 +112,7 @@ if __name__ == '__main__': host='127.0.0.1', port=5000, ) - loop.add_signal_handler(signal.SIGINT, server.stop, loop) + # loop.add_signal_handler(signal.SIGINT, server.stop, loop) logging.info("Starting file bridging server...") loop.run_until_complete(server.run_server()) loop.close()