Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Передача фалов (https://forum.antichat.xyz/showthread.php?t=201082)

bugrom256 02.05.2010 14:27

HELP: Передача файлов на C#
 
Доброго времени суток!!!!))))

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

ichechen 02.05.2010 19:52

Закачка
Код:

    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


Скачивание
Код:

    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#

ichechen 02.05.2010 19:55

Сделай Таймеры и задай интервал, чтоб клиент и сервер проверяли хост на наличае новых команд
типа ты отправляешь нужный для вывода файл на хост + файл с командами, где будет написано что и как делать
клиент стучится на хост берет файл с инфой читает команды и выполняет

bugrom256 03.05.2010 01:40

спасибо )))) но я пишу не Web, а консольное клиент-серверное приложение и мне на КЛИЕНТЕ надо считывать всё то что передал сервер...

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


Время: 14:03