Example #1
0
        public async Task UploadFile(string filePath)
        {
            using var client = new TcpClient();
            client.Connect(Ip, Port);
            var connection = new ClientConnection(client);

            var fileName  = filePath.Split('\\').Last();
            var fileBytes = await File.ReadAllBytesAsync(filePath);

            await WriteHeader(connection);
            await WriteCommandCode(connection, CommandCodeEn.PutFile);
            await WriteGuid(connection);
            await WriteDataLength(connection, fileBytes.Length + fileName.Length + 1);

            await connection.WriteStringAsync(fileName, CancellationToken);

            await connection.WriteBytesAsync(fileBytes, CancellationToken);

            var caption = await connection.ReadStringAsync(CancellationToken);

            var savedFileName = await connection.ReadStringAsync(CancellationToken);

            Console.WriteLine($"<- {caption}{savedFileName}");
        }
Example #2
0
 private async Task WriteGuid(ClientConnection connection)
 {
     await connection.WriteStringAsync(Guid.ToString(), CancellationToken);
 }
Example #3
0
 private async Task WriteString(ClientConnection connection, string data)
 {
     await connection.WriteStringAsync(data, CancellationToken);
 }
Example #4
0
 private async Task WriteHeader(ClientConnection connection)
 {
     await connection.WriteStringAsync(_messageCaption, CancellationToken);
 }