Hallo liebe Community,
Ich habe ein Chat Programm in dem ich ab der nächsten Version die Funktion Dateien zu übertragen anbieten möchte.
Kennt sich einer damit aus, habs soweit fertig weiß aber nicht warum der die Bytes vom Server nicht zum Client überträgt hinzu geht aber zurück nicht.
Es wäre nett wenn mir einer helfen könnte über TeamViewer oder so. Ist in VB geschrieben
MfG
ManuelSoftware
Hier noch der Code hatte ich vergessen :
Senden der Datei:
Empfangen:
Ich check da gerade nichts, kann mir jemand sagen woran das liegen kann weil ich null Ahnung von den übertragen der Bytes habe hier ist noch der Code vom Server:
So wird die Sub aufgerufen:
Beiträge zusammengefügt. Wie ich sehe, kennst du die Editierfunktion; nutze sie! ~Thunderbolt
Ich habe ein Chat Programm in dem ich ab der nächsten Version die Funktion Dateien zu übertragen anbieten möchte.
Kennt sich einer damit aus, habs soweit fertig weiß aber nicht warum der die Bytes vom Server nicht zum Client überträgt hinzu geht aber zurück nicht.
Es wäre nett wenn mir einer helfen könnte über TeamViewer oder so. Ist in VB geschrieben
MfG
ManuelSoftware
Hier noch der Code hatte ich vergessen :
Senden der Datei:
VB.NET-Quellcode
- Sub SendFile(filename As String)
- streamw.WriteLine("bytemode on")
- If IO.Path.GetExtension(filename) = "" Then filename = IO.Path.ChangeExtension(filename, "file")
- streamw.WriteLine(filename)
- Dim byt = IO.File.ReadAllBytes(filename)
- For Each by As Byte In byt
- streamw.Write(by)
- Next
- MsgBox(byt.Length)
- streamw.WriteLine()
- streamw.Flush()
- End Sub
Empfangen:
VB.NET-Quellcode
- Dim accept As Boolean = False
- Dim saveFile As String = ""
- Dim letzterschritt As Boolean = False
- Private Sub Chat(ByVal s As String)
- If letzterschritt Then
- Dim bytearray As New List(Of Byte)
- If s.Length > 0 Then
- For Each charstring As String In s
- Dim byt As Byte
- If Byte.TryParse(charstring, byt) Then
- bytearray.Add(byt)
- End If
- Next
- MsgBox(s & " -- " & bytearray.Count)
- IO.File.WriteAllBytes(saveFile, bytearray.ToArray)
- MessageBox.Show("Die Datei wurde Erfolgreich Empfangen und abgespeichert!", "TenChat Client", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
- letzterschritt = False
- accept = False
- saveFile = ""
- End If
- Else
- If s.StartsWith("FileSender:: Send File - ") Then
- Dim nickname As String = s.Replace("FileSender:: Send File - ", "")
- Dim msg = MessageBox.Show("Der Benutzer " + nickname + " sendete eine Datei, willst du diese Speichern?", "TenChat Client", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
- If msg = Windows.Forms.DialogResult.Yes Then
- accept = True
- Else
- accept = False
- End If
- ElseIf s.StartsWith("FileName:: ") Then
- If accept = True Then
- Dim fName As String = s.Replace("FileName:: ", "")
- Dim svd As New SaveFileDialog
- svd.Title = "Datei Speichern..."
- svd.FileName = IO.Path.GetFileNameWithoutExtension(fName)
- svd.Filter = IO.Path.GetExtension(fName).Replace(".", "").ToUpper & " - File|*" & IO.Path.GetExtension(fName)
- If svd.ShowDialog = Windows.Forms.DialogResult.OK Then
- saveFile = svd.FileName
- Else
- accept = False
- End If
- End If
- ElseIf s.StartsWith("Array: ") Then
- If accept = True Then
- letzterschritt = True
- Else
- letzterschritt = False
- End If
- Else
- If RichTextBox1.Text.Length = 0 Then
- RichTextBox1.Text = s
- Else
- RichTextBox1.Text = RichTextBox1.Text & vbNewLine & s
- End If
- End If
- End If
- End Sub
Ich check da gerade nichts, kann mir jemand sagen woran das liegen kann weil ich null Ahnung von den übertragen der Bytes habe hier ist noch der Code vom Server:
VB.NET-Quellcode
- Sub SendFile(bytes As String, filename As String, nick As String)
- For Each c As Connection In list ' an alle clients weitersenden.
- Try
- c.streamw.WriteLine("FileSender:: Send File - " + nick)
- c.streamw.WriteLine("FileName:: " + filename)
- c.streamw.WriteLine("Array: ")
- c.streamw.WriteLine(bytes)
- c.streamw.Flush()
- Catch
- End Try
- Next
- End Sub
So wird die Sub aufgerufen:
Beiträge zusammengefügt. Wie ich sehe, kennst du die Editierfunktion; nutze sie! ~Thunderbolt
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Thunderbolt“ ()