HELP: Передача файлов на C# Доброго времени суток!!!!)))) Пишу на C#. Кто-нить может подсказать как считать текст файла в поток (на сервере) и передать его клиенту, чтобы клиент вывел на экран ?????
Закачка 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#
Сделай Таймеры и задай интервал, чтоб клиент и сервер проверяли хост на наличае новых команд типа ты отправляешь нужный для вывода файл на хост + файл с командами, где будет написано что и как делать клиент стучится на хост берет файл с инфой читает команды и выполняет
спасибо )))) но я пишу не Web, а консольное клиент-серверное приложение и мне на КЛИЕНТЕ надо считывать всё то что передал сервер... ЧТО ИМЕЕМ: У меня есть TcpServer и TcpClient, работаю с потоками (не с сокетами). Проблема возникает в том, что я не могу определить полный объем передаваемой информации, под который надо бы выделить место на клиентской стороне.