Hallo!
Ich bin gerade dabei ein kleines Tool in VB .net zu schreiben, das in der Lage sein soll,
Dateien einzulesen (*.exe) und diese an eine Web-Anwendung zu schicken.
Der Webanwendung nimmt den Krempel entgegen und schreibt sie nach c:\file.xxx
So sieht der Code aus:
Mein erstes Problem:
Den ein oder anderen wird es sicher wundern, warum:
For x As Integer = 0 To buffer.Length + 1 ' + 1?
Wenn ich + 1 weglasse ist die file.xxx leer, sie wird zwar angelegt, aber sie ist leer.
Mit +1 bekommt ich zwar nen Fehler ....außerhalb des Arrays blabla....., aber die Datei wird befüllt!? Warum?
Mein zweites Problem:
Ich versuche eine 60kb große Datei zu verschicken, aber nur 40kb kommen an?
Die Datei einlesen, klappt! Schreib ich den Stream bei mir Lokal auf die Platte, so hab
ich danach eine Ausführbare exe in form von c:\file.xxx -> c:\file.exe
So, das war's erstmal, ich hoffe mir kann da jemand helfen
Ciao,
Ben
Ich bin gerade dabei ein kleines Tool in VB .net zu schreiben, das in der Lage sein soll,
Dateien einzulesen (*.exe) und diese an eine Web-Anwendung zu schicken.
Der Webanwendung nimmt den Krempel entgegen und schreibt sie nach c:\file.xxx
So sieht der Code aus:
Code:
Imports System
Imports System.Web 'for HttpUtility class
Imports System.Text 'for Encoding class
Imports System.Net 'for HttpWebRequest class
Imports System.IO 'for StreamReader class
Module Main
Sub Main()
Dim url as String = "http://10.38.6.36:8080/filelistener.jsp"
'Dim data As String = "123XX123XX123XX123XX"
Dim path as String = "C:\Programme\NetCat\nc.exe"
'Dim buffer() As Byte = Encoding.UTF8.GetBytes(data)
Dim buffer() As Byte = BinReader(path)
Dim objHttpReq as HttpWebRequest = HttpWebRequest.Create(url)
objHttpReq.Method = WebRequestMethods.Http.Put
objHttpReq.ContentLength = buffer.Length
objHttpReq.ContentType = "application/x-www-form-urlencoded"
objHttpReq.AllowWriteStreamBuffering = TRUE
debug.Print(buffer.Length)
Dim objHttpRequestStream As Stream = objHttpReq.GetRequestStream
Dim objBinaryWriter as BinaryWriter = New BinaryWriter(objHttpRequestStream)
For x As Integer = 0 To buffer.Length + 1
objBinaryWriter.Write(buffer(x))
Next
'objBinaryWriter.Flush()
'objHttpRequestStream.Close()
End Sub
Function BinReader(path As String) As Byte()
Dim binDaten() As Byte
Dim FStreamRead As New FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)
Dim BinRead As New BinaryReader(FStreamRead)
binDaten = BinRead.ReadBytes(CInt(FStreamRead.Length))
BinRead.Close()
FStreamRead.Close()
return binDaten
End Function
End Module
Mein erstes Problem:
Den ein oder anderen wird es sicher wundern, warum:
For x As Integer = 0 To buffer.Length + 1 ' + 1?
Wenn ich + 1 weglasse ist die file.xxx leer, sie wird zwar angelegt, aber sie ist leer.
Mit +1 bekommt ich zwar nen Fehler ....außerhalb des Arrays blabla....., aber die Datei wird befüllt!? Warum?
Mein zweites Problem:
Ich versuche eine 60kb große Datei zu verschicken, aber nur 40kb kommen an?
Die Datei einlesen, klappt! Schreib ich den Stream bei mir Lokal auf die Platte, so hab
ich danach eine Ausführbare exe in form von c:\file.xxx -> c:\file.exe
So, das war's erstmal, ich hoffe mir kann da jemand helfen

Ciao,
Ben