Передача фалов

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by bugrom256, 2 May 2010.

  1. bugrom256

    bugrom256 Banned

    Joined:
    14 Apr 2010
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    HELP: Передача файлов на C#

    Доброго времени суток!!!!))))

    Пишу на C#.
    Кто-нить может подсказать как считать текст файла в поток (на сервере) и передать его клиенту, чтобы клиент вывел на экран ?????
     
    #1 bugrom256, 2 May 2010
    Last edited: 2 May 2010
  2. ichechen

    ichechen New Member

    Joined:
    16 Oct 2009
    Messages:
    33
    Likes Received:
    4
    Reputations:
    8
    Закачка
    Code:
        Private Function FUPD(ByVal localFilePath As String, ByVal remoteFilePath As String)
            Try
                Dim request As WebRequest = WebRequest.Create(http_URL & "/core.php")
                request.Method = "POST"
                Dim postData As String = "OP=UPD&pr1=" & remoteFilePath & "&pr2=" & File.ReadAllText(localFilePath)
                request.ContentType = "application/x-www-form-urlencoded"
                request.ContentLength = postData.Length
                Dim dataStream As Stream = request.GetRequestStream()
                dataStream.Write(System.Text.Encoding.Default.GetBytes(postData), 0, System.Text.Encoding.Default.GetBytes(postData).Length)
                dataStream.Close()
                Dim response As WebResponse = request.GetResponse()
                dataStream = response.GetResponseStream()
                Dim reader As New StreamReader(dataStream)
                Dim responseFromServer As String = reader.ReadToEnd()
    
                ' If responseFromServer <> Nothing Then MsgBox(responseFromServer)
    
                reader.Close()
                dataStream.Close()
                response.Close()
    catch ex as exception
    End Try
    End Function

    Скачивание
    Code:
        Private Function FDWN(ByVal remoteFilePath As String, ByVal localFilePath As String)
            Try
                fKiller(localFilePath)
                Dim request As WebRequest = WebRequest.Create(http_URL & "\core.php")
                request.Method = "POST"
                Dim postData As String = "OP=DWN&pr1=" & remoteFilePath & "&pr2=" & localFilePath
                Dim byteArray As Byte() = System.Text.Encoding.UTF8.GetBytes(postData)
                request.ContentType = "application/x-www-form-urlencoded"
                request.ContentLength = byteArray.Length
                Dim dataStream As Stream = request.GetRequestStream()
                dataStream.Write(byteArray, 0, byteArray.Length)
                dataStream.Close()
                Dim response As WebResponse = request.GetResponse()
                dataStream = response.GetResponseStream()
                Dim reader As New StreamReader(dataStream)
                Dim responseFromServer As String = reader.ReadToEnd()
    
                ' If responseFromServer <> Nothing Then MsgBox(responseFromServer)
    
                File.WriteAllText(localFilePath, responseFromServer)
                reader.Close()
                dataStream.Close()
                response.Close()
                Return True
            Catch ex As Exception
                Return False
            End Try
        End Function
    
    PHP:

    Сервер
    <?php
    $curOp
    =$_POST['OP'];
    $arg_1=$_POST['pr1'];
    $arg_2=$_POST['pr2'];

    //DO COMPORATION

    switch ($curOp
    {
        case 
    'UPD'
        echo 
    $arg_1;
        
    $handle fopen("$arg_1","w");    
        
    fclose($handle);
        
    chmod("$arg_1"0777);
        
    $handle fopen("$arg_1","a");    
        
    fclose($handle);
        
    fwrite($handle,"$arg_2");
        echo 
    "Success";
            case 
    'DWN':

            if (
    file_exists($arg_1)) 
            {
        echo 
    file_get_contents("$arg_1");
        }
        break;            
    }
    exit;
    ?> 
    Там на VB, с перепиской на C# не возникнет проблем, просто перепиши с учетом синтаксиса C#
     
    #2 ichechen, 2 May 2010
    Last edited: 2 May 2010
  3. ichechen

    ichechen New Member

    Joined:
    16 Oct 2009
    Messages:
    33
    Likes Received:
    4
    Reputations:
    8
    Сделай Таймеры и задай интервал, чтоб клиент и сервер проверяли хост на наличае новых команд
    типа ты отправляешь нужный для вывода файл на хост + файл с командами, где будет написано что и как делать
    клиент стучится на хост берет файл с инфой читает команды и выполняет
     
  4. bugrom256

    bugrom256 Banned

    Joined:
    14 Apr 2010
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    спасибо )))) но я пишу не Web, а консольное клиент-серверное приложение и мне на КЛИЕНТЕ надо считывать всё то что передал сервер...

    ЧТО ИМЕЕМ:
    У меня есть TcpServer и TcpClient, работаю с потоками (не с сокетами). Проблема возникает в том, что я не могу определить полный объем передаваемой информации, под который надо бы выделить место на клиентской стороне.