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}"); }
private async Task WriteGuid(ClientConnection connection) { await connection.WriteStringAsync(Guid.ToString(), CancellationToken); }
private async Task WriteString(ClientConnection connection, string data) { await connection.WriteStringAsync(data, CancellationToken); }
private async Task WriteHeader(ClientConnection connection) { await connection.WriteStringAsync(_messageCaption, CancellationToken); }