Hey Leute, hier ist KenJy mal wieder...
Ich habe keine gut
passenden Themen gefunden die hier bereits existieren oder wollt sie
nicht noch mal schänden, daher bitte ich euch hier um Hilfe.
Ich habe folgenden Code für den Sender:
Spoiler anzeigen
Und den Code für den Empfänger:
Spoiler anzeigen
Mein Jetziges Problem ist, dass er nach ein Paar millisekunden sagt: "Finished!"
Jedoch ist die Datei immer unterschiedlich Groß und erreicht NIE die eigentlichen 12.980.055 Byte
Mir
wurde gesagt das ich ihm mitschicken soll wie Groß die Datei ist und
dass dann in der While abfrage ersetzt... Quasi "While EmpfangenBy
<> DateiBy ... "
Nur weiß ich 1. nicht wie ich ihm die Datei
Länge mitschicken soll und 2. habe ich dann (wenn ich einfach eingebe
"While EmpfangenBy <> 12980055 ..." Also den Wert mit ins Programm
schreibe) Das Problem, dass wenn er fast 100% geladen hat, und der
Buffer nicht mehr vollständig gebuffert ist, er sich aufhängt und nicht
mehr weiter macht oder sagt dass er fertig sei und DAS macht er immer
wenn der Buffer halt nicht zu 100% gefüllt ist... und ich habe KP wie
ich das bewerkstelligen soll...
Desshalb bitte ich euch jetzt um
Hilfe, da ich bis ca. 02:55Uhr Nachts noch daran gesessen habe und
gerade nur noch am verzweifeln bin... v.v
Gruß KenJy
Ich habe keine gut
passenden Themen gefunden die hier bereits existieren oder wollt sie
nicht noch mal schänden, daher bitte ich euch hier um Hilfe.
Ich habe folgenden Code für den Sender:
VB.NET-Quellcode
- Imports System.Net
- Imports System.Net.Sockets
- Public Class Form1
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- 'Read the requested word document into a byte[]
- 'Dim fs As New IO.FileStream("C:\Users\Nutzer\Music\MusikDatei.mp3", IO.FileMode.Open, IO.FileAccess.Read)
- Dim fs As New IO.FileStream(TextBox2.Text, IO.FileMode.Open, IO.FileAccess.Read)
- Dim bytes(fs.Length) As Byte
- MsgBox(fs.Length.ToString) 'Die Länge in Bytes die die Datei hat
- fs.Read(bytes, 0, bytes.Length)
- fs.Close()
- 'Connect to the server.
- Dim client As New TcpClient()
- client.Connect(IPAddress.Parse("192.168.21.11").ToString, 25564)
- Dim ns As NetworkStream = client.GetStream
- ns.Write(bytes, 0, bytes.Length)
- End Sub
- End Class
Und den Code für den Empfänger:
VB.NET-Quellcode
- Imports System.IO
- Imports System.Net.Sockets
- Imports System.Net
- Public Class Form1
- Private server As TcpListener
- Private client As New TcpClient
- Private versionnum As String = "0.5"
- Private Username As String = "Night-Light"
- Private Passwd As String = "PASSWD"
- Private ipendpoint As IPEndPoint = New IPEndPoint(IPAddress.Any, 25564)
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- server = New TcpListener(ipendpoint)
- server.Start()
- While True ' wir warten auf eine neue verbindung...
- client = server.AcceptTcpClient
- Dim fs As IO.FileStream
- 'Create the filestream for the word document to be created.
- fs = New IO.FileStream(path, FileMode.Create, FileAccess.Write)
- Dim bytes(4096) As Byte
- Dim totalread As Integer = 0
- Dim bytesread As Integer = _client.GetStream.Read(bytes, 0, bytes.Length)
- 'read bytes from the network stream as long as there is data available and write to the file stream(word document)
- While _client.GetStream.DataAvailable
- fs.Write(bytes, 0, bytesread)
- bytes(4096) = New Byte
- totalread += bytesread
- bytesread = _client.GetStream.Read(bytes, 0, bytes.Length)
- End While
- 'Flush the stream so the bytes are written to the document, then close to release resources.
- fs.Flush()
- fs.Close()
- MessageBox.Show("Finished!")
- End While
- End Sub
- End Class
Mein Jetziges Problem ist, dass er nach ein Paar millisekunden sagt: "Finished!"
Jedoch ist die Datei immer unterschiedlich Groß und erreicht NIE die eigentlichen 12.980.055 Byte
Mir
wurde gesagt das ich ihm mitschicken soll wie Groß die Datei ist und
dass dann in der While abfrage ersetzt... Quasi "While EmpfangenBy
<> DateiBy ... "
Nur weiß ich 1. nicht wie ich ihm die Datei
Länge mitschicken soll und 2. habe ich dann (wenn ich einfach eingebe
"While EmpfangenBy <> 12980055 ..." Also den Wert mit ins Programm
schreibe) Das Problem, dass wenn er fast 100% geladen hat, und der
Buffer nicht mehr vollständig gebuffert ist, er sich aufhängt und nicht
mehr weiter macht oder sagt dass er fertig sei und DAS macht er immer
wenn der Buffer halt nicht zu 100% gefüllt ist... und ich habe KP wie
ich das bewerkstelligen soll...
Desshalb bitte ich euch jetzt um
Hilfe, da ich bis ca. 02:55Uhr Nachts noch daran gesessen habe und
gerade nur noch am verzweifeln bin... v.v
Gruß KenJy
Bellum et Pax.
Omne initium est difficile.
Omne initium est difficile.
-KenJy ;D
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „KenJy_L4F“ ()