Hi,
ich habe ein tutorial gefunden, womit man recht einfach und unkompliziert Daten senden kann. Jedoch muss ich dem Server irgendwie bescheidsagen, wie die Datei heisst( z.B. Hoi.exe), da sonst ich nur eine Datei(.) machen kann, um man nachhaltig die endung hinzufügen muss...
Meine frage: Wie kann ich dem Server das .SaveFileName senden, ohne das sofort ein Error kommt
Habs schon mit FTP versucht, aber FTP ist einfach zu langsam...
SERVER:
Spoiler anzeigen
CLIENT:
Spoiler anzeigen
könnt ihr mir weiterhelfen
mfg
ich habe ein tutorial gefunden, womit man recht einfach und unkompliziert Daten senden kann. Jedoch muss ich dem Server irgendwie bescheidsagen, wie die Datei heisst( z.B. Hoi.exe), da sonst ich nur eine Datei(.) machen kann, um man nachhaltig die endung hinzufügen muss...
Meine frage: Wie kann ich dem Server das .SaveFileName senden, ohne das sofort ein Error kommt
Habs schon mit FTP versucht, aber FTP ist einfach zu langsam...
SERVER:
VB.NET-Quellcode
- Imports System.IO
- Imports System.Net
- Imports System.Net.Sockets
- Public Class Form1
- Private filePath As String
- Dim Pfad As String
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- Button2.Enabled = False
- 'Label1.Text = "Warten auf Datei-Namen"
- Call Starter()
- End Sub
- ' Private Sub Checker()
- 'Dim wc As New Net.WebClient
- ' wc.Credentials = New NetworkCredential("USER", "PW")
- ' Pfad = wc.DownloadString("ftp://Hier könnte ihre Werbung stehen.com/Dateienübertragung.txt")
- ' If Pfad = "" Then
- ' Call Checker()
- ' Else
- ' Call Starter()
- ' End If
- ' End Sub
- Private Sub Starter()
- filePath = "C:\NewFile." ' & Pfad
- Dim listenThread As Threading.Thread = New Threading.Thread(AddressOf ListenSub)
- listenThread.IsBackground = True
- listenThread.Start()
- End Sub
- Private Sub ListenSub()
- Dim server As New TcpListener(IPAddress.Any, 8005)
- server.Start()
- Try
- While True
- Dim c As TcpClient = server.AcceptTcpClient
- Dim s As NetworkStream = c.GetStream
- FileOpen(1, filePath, OpenMode.Binary)
- Dim buffer(1024 - 1) As Byte
- Do While True
- Dim bytesread As Integer = s.Read(buffer, 0, buffer.Length)
- If bytesread = 0 Then Exit Do
- FilePut(1, buffer)
- Loop
- FileClose(1)
- s.Close()
- c.Close()
- End While
- Catch ex As Exception
- MsgBox("Fehler ist aufgetreten:" & vbCr & ex.ToString, MsgBoxStyle.Critical, "Error")
- End Try
- Button2.Enabled = True
- MsgBox("Die Datei wurde auf C:\ gespeichert. Klicken sie die Datei mit Rechtsklick und gehen sie auf eigenschaften. Fügen sie nun die Endung (z.B. .zip, .exe, ...) hinzu. Ändern sie es dann nach ihnren Vorstellungen.")
- End Sub
- End Class
CLIENT:
VB.NET-Quellcode
- 'Form1.Textbox2.Text = IP-Adresse
- Imports System.Net
- Imports System.Net.Sockets
- Imports System.IO
- Imports System.Threading
- Public Class Form2
- Dim filepath As String
- Dim döner As String
- Delegate Sub nan()
- Private Sub SendSub()
- Dim cli As New TcpClient
- cli.Connect(Form1.TextBox1.Text, 8005)
- Try
- Dim nstm As Stream = cli.GetStream()
- Dim fstm As Stream = New FileStream(filepath, FileMode.Open, FileAccess.Read)
- Dim buffer(1024 - 1) As Byte
- Do While True
- Dim bytesRead As Integer = fstm.Read(buffer, 0, buffer.Length)
- If bytesRead = 0 Then Exit Do
- nstm.Write(buffer, 0, bytesRead)
- nstm.Flush()
- Loop
- cli.Close()
- nstm.Close()
- fstm.Close()
- MsgBox("Die Datein wurde erfolgreich gesendet.", MsgBoxStyle.Exclamation, "Gesendet")
- Catch ex As Exception
- MsgBox("Fehler ist aufgetreten:" & vbCr & ex.ToString, MsgBoxStyle.Critical, "Error")
- End Try
- End Sub
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- Button2.Enabled = False
- ' Dim wc As New Net.WebClient
- ' wc.Credentials = New NetworkCredential("User", "PW")
- ' wc.UploadString("ftp://Hier könnte ihre Werbung stehen.com/Dateienübertragung.txt", döner)
- filepath = TextBox1.Text
- Dim sendThread As New System.Threading.Thread(AddressOf SendSub)
- sendThread.IsBackground = True
- sendThread.Start()
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- TextBox1.Text = ""
- Dim fdlg As OpenFileDialog = New OpenFileDialog()
- fdlg.Title = "Datei senden..."
- fdlg.InitialDirectory = "c:\"
- fdlg.Filter = "Alle Dateien (*.*)|*.*|Alle Dateien (*.*)|*.*"
- fdlg.FilterIndex = 2
- fdlg.RestoreDirectory = True
- If fdlg.ShowDialog() = DialogResult.OK Then
- TextBox1.Text = fdlg.FileName
- End If
- ' döner = fdlg.SafeFileName
- End Sub
- Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
- Form1.Close()
- End Sub
- End Class
könnt ihr mir weiterhelfen
mfg