VB 5/6-Tipp 0287: Dateien via Winsock im Netzwerk/Internet übertragen
von ActiveVB
Beschreibung
Damit eine größere Datei über die Winsock verschickt werden kann, muß sie in kleine Happen zerlegt, in dieser Form versendet und auf der Zielseite wieder zusammengesetzt werden. Dieser Tip bietet hierzu eine komfortable Möglichkeit. Neben der frei wählbaren Paketgröße kann auch ein dualer Betrieb stattfinden: Während auf einen Kanal noch die Datei gesendet wird kann gleichzeitig auf dem anderen ein File empfangen werden. Dafür ist lediglich der Port zu wechseln.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: keine | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Project1.vbp ------------- ' Die Komponente ' (MSWINSCK.OCX)' wird benötigt. '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Rahmensteuerelement "Frame1" ' Steuerelement: Schaltfläche "Command1" auf Frame1 ' Steuerelement: Timersteuerelement "Timer1" auf Frame1 ' Steuerelement: Bildfeld-Steuerelement "Picture1" auf Frame1 ' Steuerelement: Dateiauswahlliste "File1" auf Frame1 ' Steuerelement: Verzeichnisauswahlliste "Dir1" auf Frame1 ' Steuerelement: Festplattenauswahlliste "Drive1" auf Frame1 ' Steuerelement: Textfeld "Text1" auf Frame1 ' Steuerelement: Windows Socket "Winsock1" auf Frame1 ' Steuerelement: Beschriftungsfeld "Label2" auf Frame1 ' Steuerelement: Beschriftungsfeld "Label1" auf Frame1 ' Steuerelement: Beschriftungsfeld "Label3" auf Frame1 ' Steuerelement: Beschriftungsfeld "Label4" auf Frame1 ' Steuerelement: Beschriftungsfeld "Label5" auf Frame1 ' Steuerelement: Beschriftungsfeld "Label6" auf Frame1 Option Explicit Const ResponseTimeOut = 20 '20 Sekunden Const PaketSize = 2048 Dim Start& Dim OkFlag As Boolean Dim TimeOut As Boolean Dim Connected As Boolean Private Sub Form_Load() Timer1.Enabled = False Timer1.Interval = 400 Winsock1.LocalPort = CInt(Text1.Text) Winsock1.Listen Label2.Caption = "Nicht verbunden" Label3.Caption = App.Path & "\Testdatei.bmp" If Dir$(Label3.Caption) <> "" Then Label4.Caption = Int((FileLen(Label3.Caption) / 1024) * 10) _ / 10 & " kB" End If End Sub Private Sub Form_Unload(Cancel As Integer) Unload Form2 End Sub Private Sub Command1_Click() Call SendFile(Label3.Caption) End Sub Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub Private Sub File1_Click() Dim AA$, BB$ AA = File1.Path If Right$(AA, 1) <> "\" And Right$(AA, 1) <> "/" Then AA = AA & "\" End If Label3.Caption = AA & File1.FileName Label4.Caption = Int((FileLen(Label3.Caption) / 1024) * 10) _ / 10 & " kB" End Sub Private Sub Timer1_Timer() If Timer - Start > ResponseTimeOut Then TimeOut = True OkFlag = False End If End Sub Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long) If Winsock1.State <> sckClosed Then Winsock1.Close Winsock1.Accept requestID Winsock1.SendData 77 Label2.Caption = "Verbunden, bereit" Connected = True End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim Data() As Byte Winsock1.GetData Data, vbString If Data(0) = 77 Then OkFlag = False End If End Sub Private Sub SendFile(FileName$) Dim Data() As Byte Dim l&, AA$, BB$, x&, FN%, TM As Single On Error Resume Next If Not Connected Then MsgBox ("Es besteht keine Verbindung zum Client!") Exit Sub End If Call Disable l = FileLen(FileName) AA = Hex(l) Do While Len(AA) < 8 AA = "0" & AA Loop BB = LastPath(FileName) BB = BB & Space$(257 - Len(BB)) AA = "New Data|" & AA & BB ReDim Data(0 To Len(AA) - 1) For x = 1 To Len(AA) Data(x - 1) = Asc(Mid$(AA, x, 1)) Next x Winsock1.SendData Data If WaitForResponse Then FN = FreeFile Open FileName For Binary As #FN ReDim Data(1 To PaketSize) As Byte Label2.Caption = "Sende Daten" Label2.Refresh l = LOF(FN) TM = Timer For x = 1 To l \ PaketSize Get #FN, , Data Winsock1.SendData Data Call ProgressBar(x * PaketSize, 0, l) Label5.Caption = Int(x * PaketSize / 1024 / (Timer - TM) * _ 10) / 10 & " kB/Sec" Label5.Refresh If Not WaitForResponse Then MsgBox ("Übertragunsfehler") Call ProgressBar(0, 0, l) Label2.Caption = "Verbunden, bereit" Call Enable Exit Sub End If Next x If l Mod PaketSize <> 0 Then ReDim Data(1 To l Mod PaketSize) As Byte Get #FN, , Data Winsock1.SendData Data Call ProgressBar(l, 0, l) Label5.Caption = Int(x * PaketSize / 1024 / (Timer - TM) * _ 10) / 10 & " kB/Sec" Label5.Refresh If Not WaitForResponse Then MsgBox ("Übertragunsfehler") Call ProgressBar(0, 0, l) Label2.Caption = "Verbunden, bereit" Call Enable Exit Sub End If End If Close FN Label2.Caption = "Verbunden, bereit" Call ProgressBar(0, 0, l) Else Label2.Caption = "Timeout" MsgBox ("Konnte Verbindung nicht herstellen!") End If Call Enable End Sub Private Function WaitForResponse() As Boolean OkFlag = True TimeOut = False Start = Timer Timer1.Enabled = True Do While OkFlag DoEvents Loop If Not TimeOut Then WaitForResponse = True Timer1.Enabled = False End Function Private Sub ProgressBar(ByVal Prg&, ByVal Min&, ByVal Max&) Dim Fx& Static LastX If Prg < Min Or Prg > Max Or Max <= Min Then Exit Sub Prg = Int(100 / (Max - Min) * (Prg - Min)) With Picture1 If Prg > 0 Then If Prg <> LastX Then Picture1.Cls Fx = (Picture1.ScaleWidth - 2) / 100 * Prg Picture1.Line (0, 0)-(Fx + 1, Picture1.ScaleHeight _ - 1), &H8000000D, BF .CurrentX = Fx + 3 .CurrentY = 0 Picture1.Print Trim$(CStr(Prg) & " %") LastX = Prg End If Else Picture1.Cls End If End With End Sub Private Function LastPath(ByVal Path$) As String Dim AA$, BB$, x& For x = Len(Path) To 1 Step -1 AA = Mid$(Path, x, 1) If AA = "/" Or AA = "\" Then Exit For Else BB = AA & BB End If Next x LastPath = BB End Function Private Sub Disable() Text1.Enabled = False Command1.Enabled = False File1.Enabled = False Dir1.Enabled = False Drive1.Enabled = False MousePointer = vbHourglass End Sub Private Sub Enable() Text1.Enabled = True Command1.Enabled = True File1.Enabled = True Dir1.Enabled = True Drive1.Enabled = True MousePointer = vbDefault End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '--------- Anfang Formular "Form2" alias Form2.frm --------- ' Steuerelement: Rahmensteuerelement "Frame1" ' Steuerelement: Schaltfläche "Command1" auf Frame1 ' Steuerelement: Bildfeld-Steuerelement "Picture1" auf Frame1 ' Steuerelement: Timersteuerelement "Timer1" auf Frame1 ' Steuerelement: Festplattenauswahlliste "Drive1" auf Frame1 ' Steuerelement: Verzeichnisauswahlliste "Dir1" auf Frame1 ' Steuerelement: Dateiauswahlliste "File1" auf Frame1 ' Steuerelement: Textfeld "Text1" auf Frame1 ' Steuerelement: Textfeld "Text2" auf Frame1 ' Steuerelement: Windows Socket "Winsock1" auf Frame1 ' Steuerelement: Beschriftungsfeld "Label8" auf Frame1 ' Steuerelement: Beschriftungsfeld "Label1" auf Frame1 ' Steuerelement: Beschriftungsfeld "Label2" auf Frame1 ' Steuerelement: Beschriftungsfeld "Label4" auf Frame1 ' Steuerelement: Beschriftungsfeld "Label3" auf Frame1 ' Steuerelement: Beschriftungsfeld "Label7" auf Frame1 ' Steuerelement: Beschriftungsfeld "Label9" auf Frame1 ' Steuerelement: Beschriftungsfeld "Label5" auf Frame1 Option Explicit Const ResponseTimeOut = 20 '20 Sekunden Dim Start& Dim OkFlag As Boolean Dim TimeOut As Boolean Dim Connected As Boolean Dim Awaiting As Boolean Private Sub Form_Load() Timer1.Enabled = False Timer1.Interval = 400 Drive1.Drive = "c:" Dir1.Path = "c:" With Form1 .Show .Top = Screen.Height / 2 .Left = (Screen.Width - .Width) / 2 End With With Me .Left = Form1.Left .Top = Form1.Top - .Height End With End Sub Private Sub Form_Unload(Cancel As Integer) Unload Form1 End Sub Private Sub Command1_Click() On Error Resume Next Winsock1.Connect Text2.Text, CInt(Text1.Text) Awaiting = True If WaitForResponse Then Label1.Caption = "Verbunden, bereit" Command1.Enabled = False Else MsgBox ("Konnte keine Verbindung zum Server hestellen") Winsock1.Close End If Awaiting = False End Sub Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub Private Sub Dir1_Change() Dim AA$ AA = Dir1.Path If Right$(AA, 1) <> "\" And Right$(AA, 1) <> "/" Then AA = AA & "\" End If Label8.Caption = AA File1.Path = Dir1.Path End Sub Private Sub Timer1_Timer() If Timer - Start > ResponseTimeOut Then TimeOut = True OkFlag = False End If End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim Data() As Byte Dim AA$, BB$, x&, d As Single Static Rec As Boolean Static TotalLen& Static IsLen& Static FN% Static TM As Single Winsock1.GetData Data, vbString If Awaiting Then If Data(0) = 77 Then OkFlag = False Else If UBound(Data) = 273 And Not Rec Then For x = 0 To UBound(Data) AA = AA & Chr$(Data(x)) Next x If Left$(AA, 9) = "New Data|" Then TotalLen = CLng("&H" & Mid$(AA, 10, 8)) If TotalLen <> 0 Then BB = Trim$(Mid$(AA, 18)) Label1.Caption = "Empfange die Datei " & Chr$(34) & _ BB & Chr$(34) Label4.Caption = Int((TotalLen / 1024) * 10) / 10 & _ " kB" Call Dir1_Change Label8.Caption = Label8.Caption & BB TM = Timer Call Disable Else TotalLen = 0 End If End If If TotalLen <> 0 Then Winsock1.SendData 77 Rec = True FN = FreeFile IsLen = 0 If Dir$(Label8.Caption) <> "" Then Kill Label8.Caption End If Open Label8.Caption For Binary As #FN End If ElseIf Rec Then Put #FN, , Data IsLen = IsLen + UBound(Data) + 1 d = (Timer - TM) If d <> 0 Then Label3.Caption = Int(IsLen / 1024 / _ d * 10) / 10 & " kB/Sec" Call ProgressBar(IsLen, 0, TotalLen) If IsLen = TotalLen Then Close FN MsgBox ("Übertragung erfolgreich beendet!") Call ProgressBar(0, 0, TotalLen) Rec = False Call Enable TotalLen = 0 File1.Refresh BB = LastPath(Label8.Caption) If File1.ListCount > 0 Then For x = 0 To File1.ListCount - 1 If File1.List(x) = BB Then File1.ListIndex = x Exit For End If Next x Label1.Caption = "Verbunden, bereit" End If End If Winsock1.SendData 77 End If End If End Sub Private Sub ProgressBar(ByVal Prg&, ByVal Min&, ByVal Max&) Dim Fx& Static LastX If Prg < Min Or Prg > Max Or Max <= Min Then Exit Sub Prg = Int(100 / (Max - Min) * (Prg - Min)) With Picture1 If Prg > 0 Then If Prg <> LastX Then Picture1.Cls Fx = (Picture1.ScaleWidth - 2) / 100 * Prg Picture1.Line (0, 0)-(Fx + 1, Picture1.ScaleHeight _ - 1), &H8000000D, BF .CurrentX = Fx + 3 .CurrentY = 0 Picture1.Print Trim$(CStr(Prg) & " %") LastX = Prg End If Else Picture1.Cls End If End With End Sub Private Function WaitForResponse() As Boolean OkFlag = True TimeOut = False Start = Timer Timer1.Enabled = True Do While OkFlag DoEvents Loop If Not TimeOut Then WaitForResponse = True Timer1.Enabled = False End Function Private Function LastPath(ByVal Path$) As String Dim AA$, BB$, x& For x = Len(Path) To 1 Step -1 AA = Mid$(Path, x, 1) If AA = "/" Or AA = "\" Then Exit For Else BB = AA & BB End If Next x LastPath = BB End Function Private Sub Disable() Text1.Enabled = False Text2.Enabled = False Dir1.Enabled = False Drive1.Enabled = False MousePointer = vbHourglass End Sub Private Sub Enable() Text1.Enabled = True Text2.Enabled = True Dir1.Enabled = True Drive1.Enabled = True MousePointer = vbDefault End Sub '---------- Ende Formular "Form2" alias Form2.frm ---------- '-------------- Ende Projektdatei Project1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 34 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von some12079 am 25.07.2006 um 21:39
am einlesen der daten hackts bestimmt nicht
es ist TCP was das problem ist
also wie folgt:
rechner B sendet ein paket zu rechner B
TCP verlangt hier das Rechner B die ankunft des paktes Rechner A mitteilt wo dürch folgendes passiert:
der ping (also die übertragungszeit) zum internet ist zwischen jedem client zB 60ms macht also von client zu client 120 ms (=0,12sec.) -> 8 packete/s im beispiel wären das dann 16kbyte/s - d stimmt doch was nich , richtig die übertragungszeit wächst mit der größe des packetes ..
macht mal
ping google.de -l 32
ping google.de -l 1400
-l 2000 geht schon gar nicht weil da das IPPacket kleiner ist
Kommentar von Mathew Jumper am 16.04.2006 um 13:31
Hallo,
das einzige Problem an dem Projekt ist, dass das Laden von Dateien mit Open und Close so lange dauert (bei großen Dateien).
Kommentar von Kaeptn Perpf am 04.09.2005 um 13:48
Hallo nun mal ein Tip von mir...
versucht´s doch mal mit dem Debugger..der wird Euch hervoragende Dienste leisten, bevor der Autor hier angemacht wird. Es wäre zwar schon besser in einem Tutorial, wenn das mit ein paar Kommentaren versehen wäre, aber immerhin haben wir hier die Möglichkeit mal in den Quell-Code reinzuschauen.
Kommentar von Kevin am 20.02.2005 um 10:26
WOW hammer geiles programm
Kommentar von bluedead007 am 03.10.2004 um 18:48
Hallo, suche ein ganz ganz einfaches Beispiel kann mir jemand Helen wo finde ich eins ich habe mich bei google tot gesucht und immer nur so große projekte gefunden muss doch auch in ein paar zeilen möglcih sein danke für die hilfe
Kommentar von Matthias am 24.09.2004 um 20:05
Nicht schlecht, aber geht das nicht einfacher?
Kommentar von VB Newbie am 17.05.2004 um 00:14
Ich finde, dass dieser Code viel zu komplex ist für ein beispiel. Da ist soviel unwichtiges Zeugs drin.
Ich habe versucht das in ein Programm einzubinden, ohne Erfolg. Als ich das mal selber probiert habe, habe ich herausgefunden, dass das eigentlich sehr einfach ist.
Kommentar von MyD am 29.04.2004 um 22:27
Also der Code ist recht und gut
nur gibt es keine möglichkeit, dass hier mal jemand den code vereinfacht und ihn mir ggf. mal zukommenlassen könnte? Das wäre verdammt nett! Der Code muss net schwer oder umfangreich sein - einfach primitiv =) das man ihn wenigstens bisschen verstehen kann!
Vielen Dank im voraus - MFG MyD!
Kommentar von Mark G am 09.02.2004 um 12:46
@ Chris:
Die Maximale Paketgröße ist im Netzwerk meißt auf ungefähr 8 KB begrenzt, was schon sehr viel ist ... Du hast anscheinent die Aufteilungs- und zusammenstrick mechanismen ausgebaut. Das Programm muss von sich aus, die Pakete zusammenflicken. Ich hoffe du hast verstanden was ich mein.
mfg Mark
Kommentar von Killalot am 29.01.2004 um 16:28
hi, ich hab mal das grungerüst ausm programm gefiltert, und hab versucht ne datei per winsock zu kopieren(sck sendet an sck2 und sck2 speichert datei ab), leider kommt am ande immier eine datei raus, die nur 8 Kb gross ist, und ich hab keine ahnung warum....
das ist der sourcecode, würd mich sehr freuen ne antowrt zu bekommen
(email: sirkillalothh@web.de)
mFg
Killalot
code auch zu finden unter http://nopaste.php-q.net/37516
Private Sub Command1_Click()
Const ChunkSize = 1024
Dim Data() As Byte
ReDim Data(1 To ChunkSize) As Byte
fdf = FreeFile
Open txtSend.Text For Binary As #fdf
Dim i%
For i = 1 To LOF(fdf) \ ChunkSize
Get #fdf, , Data
'(i * ChunkSize) - ChunkSize
sock.SendData Data
Next i
If LOF(fdf) Mod ChunkSize <> 0 Then
ReDim Data(1 To LOF(fdf) Mod ChunkSize) As Byte
Get #fdf, , Data
'Get filn, (Bsenden * 4096) - 4095, BData
sock.SendData Data
End If
End Sub
Private Sub Form_Load()
sock2.LocalPort = 4919
sock2.Listen
End Sub
Private Sub sock2_ConnectionRequest(ByVal requestID As Long)
If sock2.State <> sckClosed Then sock2.Close
sock2.Accept requestID
Connected = True
End Sub
Private Sub sock2_DataArrival(ByVal bytesTotal As Long)
Dim Data As String
sock2.GetData Data, vbString
ff = FreeFile
Open "c:\av2.exe" For Binary As #ff
Put #ff, , Data
End Sub
Kommentar von Christian am 13.01.2004 um 05:35
Hallo,
leider habe ich ein Problem. Wenn man zu schnell hintereinander Daten sendet, dann packt er die letzten Daten der ersten Datei, den "New Data"-String und die ersten Daten der neuen Datei in ein Paket und erkennt den neuen Dateianfang beim Empfangen nicht. Dann hat man eine Datei auf Platte (die Anzeige ist schon bei 200% etc.), inder alles hintereinander drin steht.
Habe halt automatisiert versucht mehrere Dateien zu senden... schade. Muss ich wohl eine Pause einbauen.
Außerdem gibt es manchmal das Problem, dass beim Sender alles erfolgreich angezeigt wird, beim Empfänger aber nur ca. 2/3 erfolgreich ankamen. Das hab ich bis heute nicht durchschaut ;).
MfG
Chris
Kommentar von MVXA am 10.09.2003 um 16:55
HI
Is gut das Beispielprogramm aber gewöhne dir an anständige namen für die Variablen zu geben und es tut nicht weh hin und wieder da und dort ein paar komentare zu machen. Ich will das ganze in mein programm einbauen und dabei habe ich jetzt schwierigkeiten den Code zu lesen.
Kommentar von Sentcool am 20.08.2003 um 18:49
tja da musst du entweder die firewall neu konfigurieren so dass sie das programm durchlässt .. oder du schaltest sie ab... und holst dir was besseres als den winxp dreck :) nimm zonealarm, die is gut für leute die nich so viel einstellen möchten... z.b. und die
Kommentar von duckhunter am 20.08.2003 um 18:46
Bei mir geht das Ding nur, wenn ich meine Firewall ausschalte. Was muss ich einstellen, damit es auch bei eingeschaltener Firewall geht (ich benutze die WinXP Firewall).
Danke
duckhunter
Kommentar von Deluxee am 29.07.2003 um 15:24
Bei mir funktioniert das Programm auch gut. Aber ich möchte das Programm vom Client aus Steuern! Der Server soll auf befehl eine Datei senden oder entfangen können und der soll auch sonst nichts als das Steuerelement und ggf. noch ein Timer besitzen!
Bei Server und Client soll alles auf eine Form beschränkt sein. Und am besten soll alles über ein Winsocksteuerelement laufen.
Ich hab schon versucht den Sourcecode der Formen zusammenzufassen aber dann funktionierte nichts mehr.
Schreibt bitte mögliche Lösungsvorschläge ins Forum!
Danke
*Christoph*
Kommentar von Sentcool am 29.03.2003 um 16:45
Der code funktioniert bei mir ganz gut...
leider kapier ich nich wirklich was genau dabei ab geht... kann mir mal jemand erklären was genau passiert wie die größe mit diesem HEX ermittelt wird und was das mit dem redim usw. und überhaupt was alles bedeutet?
cya
Sentcool
Kommentar von Firewalker2k am 15.01.2003 um 15:56
Tach,
das project geht aber ich habe mir eben von ein freund eine 10MB große datei schicken lassen was aber ziemlich langsam war, bis zu 6kb/s nur, er hat Hansenet DSL er hat ein Upload von 25kb/s und ich habe T-DSL also wäre das runterladen kein problem, kann ich die übertragung irgendwie beschleinigen?
MFG
Kommentar von hitman am 10.08.2002 um 17:57
Der Downloadlink funktioniert nicht.
Kommentar von Michael am 08.08.2002 um 19:28
also ich finde dieses programm ist irgendwie zu kompliziert gemacht. ich hab selebr schon erfahrung mit dem winsock und auch einmal so eine art file-sharing software fürs netzwerk gemacht, die war aber weit weniger kompliziert und auch verständlicher
Kommentar von Hendrik Jordt am 03.06.2002 um 09:30
@Mülli:
Was ist das denn hier für eine Ausdrucksweise? Wer pöbeln will, kann doch bitte in ein anderes Forum gehen. Danke!
@Flo:
Eigentlich funktioniert es auch ohne weitere Änderungen im GAN. Was aber beachtet werden sollte, ist das die meisten Ports und 100 reserviert sind. Z.B. 21 für FTP oer 80 für HTTP.
Gruss, H.Jordt
Kommentar von Flo am 29.05.2002 um 10:56
Hi,
Das Programm funktioniert bei mir optimal, solange ich es im Netzwerk benutze.
Muß ich irgendetwas besonderes beachten, wenn ich´s im Internet verwenden will (z.B.: bestimmten Port)?
Flo
Kommentar von Mülli am 14.05.2002 um 23:03
Du mongo musst das winsock steuerelement auch auf deine form bringen und ihm den namen "winsock1" geben.
meine güte denken vorm reden!
tipp: links hast so ne leiste wo auch zb das CmdButton-Element oder die Textbox sind. dort klickst auf die rechte maustaste-komponenten und suchst winsock, einen hacken setzen und ok. steuerelement auf die form bringen. Tata...
Kommentar von TwS|Predator am 10.05.2002 um 19:35
ist zwar schön und gut aba bei mir gehts nicht hab vb6 mit win98 der sagt mir variable "winsock1" nichtb defieniert!
Kommentar von Fightcock am 08.04.2002 um 19:57
Wie kann ich denn in einer winsock Umgebung einen screenshot aus der Zwichenablage direkt ohne eine Datei anzulegen übertragen?Schon jetzt vielen Dank im Vorraus.
Kommentar von Felix Geisendörfer am 26.01.2002 um 09:14
Sehr schöner Tipp mit gutem Grundgedanke. Aber eins nervt mich tierisch ... Das der ganze Tipp undokumentiert ist ... und das bei solch verwirrtenden Schleifen. Bis man da mal durchsieht kann man sich den Tipp auch fast selber ausdenken (ich denke mal das die Tipps hier dazu dienen sollen das man sie versteht neuschreibt und dann in sein Programm einbezieht und nicht alles markieren einfügen und alles unnötige ausdokumentieren) von daher wäre es echt gut wenn du deine Tipps in Zukunft dokumentieren bzw. kleine Anhaltspunkte geben könntest ...
cu
Felix Geisendörfer
Kommentar von Nicolai K. am 02.08.2001 um 09:22
Hi Joachim,
kein Wunder, der hat ja die Software auch nicht installiert. Lies dazu am besten Tipp 193.
Nicolai
Kommentar von Joachim Wöhler am 15.03.2001 um 16:03
Wie übertrage ich mit den Formularen eine Datei auf einen Server, auf dem Eine Seite von mir ist?
Jedesmal wenn ich die IP des Servers eintrage, und dann auf verbinde klicke, kommt die Meldung, daß eine Verbindung nicht hergestellt werden konnte.
Danke schon mal,
Joachim
Kommentar von chris am 25.02.2001 um 13:11
Ich habe mir mal das Beispiel herunter geladen. jetzt will ich gerne das man in meinem Programm ebenfalls daten versenden kann. nur leider kann man bei deinem programm den zielpfad nicht selber bestimmen. kannst du mir mal erklären, wie ich das machen kann? danke schon im voraus
chris
Kommentar von Rack Michael am 16.01.2001 um 19:33
Hi Programmer,
ich habe mir jetzt mal dein Programm angesehen.... Echt super ausgedacht... Nur, steige ich gerade erst in WinSock von VB6.0 ein.
Ich hatte schon einige Versuche gemacht, aber irgendwie funzen die Befehle net so.
Könntest du mir die Befehle, die du hier verwendest Detalieren?
Ich wäre dir sehr dankbar.
PS: Wie ließt du aus? Wieviel MB / KB du schon übertragen hast?
Ich kenn mich richtig gut aus in VB und erlernte alles durch Probieren, aber nach einer Woche, hast bestimmt auch du keinen Bock mehr, das selbst herauszufinden.
PS: Find ich echt super von Dir, dass du dich so mit VB beschäftigst und dein Wissen auch an andere mitteilst.
MfG
Rack Michael.
Kommentar von Götz Reinecke am 01.01.2001 um 21:55
Hallo Moosi, ich nehme mal an damit es bei Übertragungsraten
Kommentar von Moosi am 01.01.2001 um 21:49
Warum hat dieses Bsp. einen Fehler bei der Anzeige der Übertragungsrate, wenn man das On Error Resume next herauslöscht, "Division durch Null" ???
MFG,
Moosi
Kommentar von Mario Zeller am 01.12.2000 um 14:52
Hallo Thomas, ich glaube, es liegt daran, dass du auf dem anderen Rechner nicht 127.0.0.1 angeben darfst, da diese Adresse immer lokal ist. Gehe in die Dos-Eingabeaufforderung und finde mit "IPCONFIG" die richtige IP raus. Wenn du diese angibst, dann müsste es eigentlich klappen.
Kommentar von Götz Reinecke am 21.11.2000 um 15:16
Hallo Thomas, bei mir klappt das hervorragend, auch habe ich es vorher auf bestimmt 4 verschieden Rechnern getestet, was soll denn daran nicht funktionieren?
Kommentar von Thomas am 21.11.2000 um 15:07
Hallo
Ich habe ihr Beispiel "Dateien mit der Winsock übertragen
" aufprobiert. Es geht irgendwie nicht so ganz. Können sie mir das Programm nicht so machen, dass sich der Client mit dem Server (Ip:127.0.0.1) verbindet.
Können sie mir das Programm dann bitte schicken? Ich währe ihnen sehr dankbar. Danke im Vorraus.
Tschüß Thomas!