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:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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