Mijn vraag
Heb een stuk TCP bestand zend/ontvang code en dat werk soms wel soms niet
, dit stukje maakt eerst een kopie van het bestand en gaat dan het kopie versturen. Waarom eerst een kopie: omdat het log bestanden zijn en die kunnen nogal eens snel gelockt worden.
Nu als ik de functie test met een ander bestand, dan word dat gewoon verstuurd zonder fout
ik zien ook dat op de "server" pc er een kopie van het bestand word aangemaakt en eenmaal door de code word deze ook weer verwijderd.
Met het ene bestand:
:strip_exif()/f/image/FG20os2qYl7Kh7Sj4FpZkk4a.png?f=user_large)
en het andere bestand:
:strip_exif()/f/image/7bCD2rl4HP69Wtkp891gWMIl.png?f=user_large)
Relevante software en hardware die ik gebruik
Microsoft Visual Studio Community 2022 (64-bit) - Current Version 17.11.5
Bestanden zijn een paar kB en een paar MB.
Wat ik al gevonden of geprobeerd heb
Ik heb een extra try catch er in gezet (rond het kopie gedeelte) omdat ik dacht dat het daar mis liep maar dat is niet. Ik krijg nl een messagebox met uitroep teken en niet het error teken. En dan kreeg ik wrs ook een andere melding.
Ik bedacht me net dat ik die filelen waarde nog kon checken. deze komt goed door, word pas een probleem als de network stream word gelezen (lijn 3).
Heb nu gemerkt, dat de messagebox eerst al op de "server" naar boven komt en niet op de client
Heb een stuk TCP bestand zend/ontvang code en dat werk soms wel soms niet

Nu als ik de functie test met een ander bestand, dan word dat gewoon verstuurd zonder fout

Met het ene bestand:
:strip_exif()/f/image/FG20os2qYl7Kh7Sj4FpZkk4a.png?f=user_large)
en het andere bestand:
:strip_exif()/f/image/7bCD2rl4HP69Wtkp891gWMIl.png?f=user_large)
Relevante software en hardware die ik gebruik
Microsoft Visual Studio Community 2022 (64-bit) - Current Version 17.11.5
Visual Basic .NET:
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
| Try ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 Dim client As New TcpClient '-wait on connection While Not client.Connected client.Connect(_UsedIp, _UsedPort) Thread.Sleep(100) End While StatusChange("SendFile: Connected to " & _UsedIp & ":" & _UsedPort) 'writes a String and a Long with binarywriter (wrapping networkstream) Try My.Computer.FileSystem.CopyFile(File2Send, File2Send & "copy") Catch ex As Exception MessageBox.Show(ex.Message, "Sendfile error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Try End Try Using bw As New BinaryWriter(client.GetStream) Dim info As New FileInfo(File2Send & "copy") 'bw.Write(info.Name) bw.Write(info.Length) 'using filestream to read file, writes this directly to networkstream Using fs As New FileStream(File2Send & "copy", FileMode.Open, FileAccess.Read) Dim buffer(_BufferSize) As Byte, length As Integer = -1 Do Until length = 0 length = fs.Read(buffer, 0, buffer.Length) client.GetStream.Write(buffer, 0, length) Loop End Using End Using client.Close() client.Dispose() Catch ex As Exception MessageBox.Show(ex.Message, "Sendfile error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) StatusChange("SendFile::Error: " & ex.Message) End Try If File.Exists(File2Send & "copy") Then File.Delete(File2Send & "copy") |
Bestanden zijn een paar kB en een paar MB.
Wat ik al gevonden of geprobeerd heb
Ik heb een extra try catch er in gezet (rond het kopie gedeelte) omdat ik dacht dat het daar mis liep maar dat is niet. Ik krijg nl een messagebox met uitroep teken en niet het error teken. En dan kreeg ik wrs ook een andere melding.
Ik bedacht me net dat ik die filelen waarde nog kon checken. deze komt goed door, word pas een probleem als de network stream word gelezen (lijn 3).
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
| Using fs As New FileStream(_SaveFilename, FileMode.Create, FileAccess.Write) Do Until readstotal = filelen Reads = clientSocket.GetStream.Read(buffer, 0, buffer.Length) fs.Write(buffer, 0, Reads) readstotal += Reads fs.Flush() Loop If fs.Length = 0 Then StatusChange("ReceiveFile: filesize = 0 bytes") StatusChange("ReceiveFile: done#" & _SaveFilename) End Using |
Heb nu gemerkt, dat de messagebox eerst al op de "server" naar boven komt en niet op de client
[ Voor 11% gewijzigd door Damic op 02-11-2024 22:00 ]
Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag