Hallo schönen guten Tag, ich arbeite zurzeit an einem Messenger für Support-zwecke oder einfach für Freunde untereinander...
Soweit funktioniert das versenden der Textnachrichten, kann grundlegend dateien starten und Systeminfos holen...
Nun versuche ich seit einer Weile das meine Anwendung auch Dateien übertragen kann, das geht auch mittels Base64-Codierung (was echt lange dauert beim 2 MB auf dem localhost)
Nachgedacht habe ich über eine lösung per filestream oder ähnliches... Aber ich weiss nicht wie ich dass realisieren soll ich poste einfach mal die für das senden und empfangen wichtigen teile
wer noch teile braucht einfach nachfragen!
LG Guido
Mittels dieser Sub sende ich nachrichten.... (Der Streamwriter wird hier festgelegt und genutzt)
Und damit lese ich das gesendete aus:
hiermit handle ich den dateitransfer aus:
Soweit funktioniert das versenden der Textnachrichten, kann grundlegend dateien starten und Systeminfos holen...
Nun versuche ich seit einer Weile das meine Anwendung auch Dateien übertragen kann, das geht auch mittels Base64-Codierung (was echt lange dauert beim 2 MB auf dem localhost)
Nachgedacht habe ich über eine lösung per filestream oder ähnliches... Aber ich weiss nicht wie ich dass realisieren soll ich poste einfach mal die für das senden und empfangen wichtigen teile
wer noch teile braucht einfach nachfragen!
LG Guido
Mittels dieser Sub sende ich nachrichten.... (Der Streamwriter wird hier festgelegt und genutzt)
VB.NET-Quellcode
- Private Sub _Client_Responce(ByVal Stream As String)
- connect(ÜberprüfeAdresse(Me.Absender), Me.Aport)
- Try
- ssend_thread.Start(Stream)
- Catch ex As Exception
- Me.Invoke(New _System_Sende(AddressOf System_Sende), Stream)
- End Try
- End Sub
- Private Sub _write_Stream(ByVal stream As String)
- Try
- Dim nvwriter As New StreamWriter(nvclient.GetStream())
- If Connected = True Then
- If DebugMode = True Then infobox.AppendText(Format(Now, "dd.MM.yyyy hh:mm:ss") & " [Debug] (_Write_Stream()) writing... " & vbCrLf)
- nvwriter.Write(stream)
- nvwriter.Flush()
- If DebugMode = True Then infobox.AppendText(Format(Now, "dd.MM.yyyy hh:mm:ss") & " [Debug] (_Write_Stream()) flushing... " & vbCrLf)
- nvwriter.Close()
- If DebugMode = True Then infobox.AppendText(Format(Now, "dd.MM.yyyy hh:mm:ss") & " [Debug] (_Write_Stream()) Stream Closed... " & vbCrLf)
- stream = Nothing
- pinger_started = True
- Pinger.Start()
- Timeout.Start()
- If DebugMode = True Then infobox.AppendText(Format(Now, "dd.MM.yyyy hh:mm:ss") & " [Debug] ping and timeout started... " & vbCrLf)
- Else
- If DebugMode = True Then infobox.AppendText(Format(Now, "dd.MM.yyyy hh:mm:ss") & " [Debug] (_Write_Stream()) The Client is not connected!... " & vbCrLf)
- End If
- Catch ex As Exception
- If DebugMode = True Then infobox.AppendText(Format(Now, "dd.MM.yyyy hh:mm:ss") & " [Debug] (_Write_Stream()) " & ex.Message & vbCrLf)
- End Try
- End Sub
Und damit lese ich das gesendete aus:
VB.NET-Quellcode
- Private Sub _Read_Stream()
- Try
- If nvserver.Pending = True Then
- Message = ""
- nvclient = nvserver.AcceptTcpClient()
- Dim nvreader As New StreamReader(nvclient.GetStream())
- While (nvreader.Peek > -1)
- Message = Message + Convert.ToChar(nvreader.Read()).ToString
- End While
- If DebugMode = True Then infobox.AppendText(Format(Now, "dd.MM.yyyy hh:mm:ss") & " [Debug] (_check_Agent()) starting... " & vbCrLf)
- Get_StreamType(Message)
- Else : End If
- Catch ex As Exception
- If DebugMode = True Then infobox.AppendText(Format(Now, "dd.MM.yyyy hh:mm:ss") & " [Debug] (Read_Stream()) " & ex.Message & vbCrLf)
- End Try
- End Sub
hiermit handle ich den dateitransfer aus:
VB.NET-Quellcode
- Case "#3"
- If Parameter = True Then
- _Client_Responce(";#4" & Me.filename) ' Sende den Dateinamen, für die speicherung
- Else
- _Client_Responce(";#8Die Anfrage wurde abgelehnt!" & Me.filename) ' Meldung zurück senden
- End If
- Case "#4" 'Wir erhalten hier den dateinamen....
- Me.File_name = Parameter
- _Client_Responce(";#5") ' Und sagen dem Partner dass er uns die Datei sanden kann...
- Case "#5" ' Datei kodieren... und senden...
- Dim buffer1() As Byte = File.ReadAllBytes(Me.filename) ' Datei einlesen.....
- _Client_Responce(";#6" & Convert.ToBase64String(buffer1)) 'Senden der Datei...
- Case "#6" 'Senden... der datei...
- Dim buffer2() As Byte = Convert.FromBase64String(Parameter)
- File.WriteAllBytes(My.Application.Info.DirectoryPath + "\" + File_name, buffer2) 'Schreiben, auf der festplatte
- infobox.AppendText("[Netvision-Meldung]: Datei erhalten..." & vbCrLf & vbCrLf)
- _Client_Responce(";#8Datei gesendet!" & vbCrLf & vbCrLf) ' Senden der Rückmeldung dass wir die Datei erhalten haben...
- Case "#2"
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „MrTeeek“ ()