Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
nicok
Poster
Poster

Anmeldedatum: 15.05.2008
Beiträge: 161

Winsock größere Packete übertragen
Verfasst am: 20.07.2008, 10:13

Hi,

ich möchte über Winsocks ein größere Packet übertragen.
Nun das problem ist das dieses Paket eigentlich eine Variable ist und schonmal keine Datei (bei Dateien hätte ich einfach einen von den tausenden beispiel src genommen)

Also ich schätze ich muss die Variable immer in Stückchen einlesen und verschicken.

Aber wie sieht das code-technsich bei Server und Client aus?
 
Marduk
Überflieger
Überflieger

Anmeldedatum: 16.04.2008
Beiträge: 374


Verfasst am: 20.07.2008, 10:18

Schonmal geguckt wie einer dieser tausenden Beispiel src das Problem löst. Womöglich könnte man ja die Variable in eine Datei speichern und dann verschicken?? Surprised
 
bla
Coder
Coder

Anmeldedatum: 02.05.2008
Beiträge: 267


Verfasst am: 20.07.2008, 10:35

Visual Basic: [code]for i = 1 to kA step 20
winsock.send mid(string,i,20)
next i[/code]

so viellt :p

und der andere part muss das dann iwie wieder zusammensetztn... viellt mit nem bestimmten zeichen vor den eigentlichen string, so dass der andere part das überprüft und wenn das zeichen da ist, wird es an die anderen stücke geheftet... so könnte ich mir das vorstellen
 
nicok
Poster
Poster

Anmeldedatum: 15.05.2008
Beiträge: 161


Verfasst am: 20.07.2008, 10:50

naja ich such ja grad nach einer anderen möglichkeit es ohne in ne datei zu packen zu machen..

also variable stückchenweise verschicken und dann zusammensetzen
 
slayer616
Tutorial Leser
Tutorial Leser

Anmeldedatum: 01.05.2008
Beiträge: 20


Verfasst am: 20.07.2008, 21:34

Winsock sendet nur 1024 Buchstaben, um sicher zugehen dass alles gesendet wird nehmen wir 1000 Buchstaben als Block

Dim zahl as Integer
Dim deinString as String
zahl = 1
do
Server.SendData "Packet1" & Mid(deinString, zahl, 1000)
zahl = zahl + 1000 ' Position ändern
Loop until zahl + 1000 >= Len(deinString)
Server.SendData "Packet2" & Right(DeinString, Länge - zahl + 1)


Jetzt muss dein Server das machen bei dataarrvial:

winsck.getdata data
Rest = Right(data, Len(data) - 7)
select case Left(data,7)
case "Packet1"
Variable = Variable & Rest
Case "Packet
Variable = Variable & Rest
'Jetzt kannst du deinen String verarbeiten
 
nicok
Poster
Poster

Anmeldedatum: 15.05.2008
Beiträge: 161


Verfasst am: 21.07.2008, 15:07

Vielen Dank erstmal für deinen Source.

Ich hab einwenig drann gebastelt und herrausgefunden das ein DoEvent eingebauen werden muss, da sonst nur ein großes Paket versendet wird.

Außerdem funktioniert alles nur mit Pausen (Als Pause benutze ich Messageboxen)

Ich hab mal das Projekt hochgeladen:

http://uploaded.to/?id=p0ozxq


Hoffe mir kann jemand helfen.


Anmerkung:
Sobald man die 2 Messageboxen wegnimmt verändern sich die Größen der jeweiligen Pakete. Einfach mal ausprobieren.
Die Größe des aktuellen Pakets wird in der Listbox angezeigt!
 
slayer616
Tutorial Leser
Tutorial Leser

Anmeldedatum: 01.05.2008
Beiträge: 20


Verfasst am: 21.07.2008, 20:31

sry hätte ich erwähnen müssen... nimm die sleep API oder mach doch noch stabiler:
Client fordert Packet an
Server verschickt Packet1
Client empfängt und fordert das nächste Packet an
Server verschickt dann packet2
usw....
 
nicok
Poster
Poster

Anmeldedatum: 15.05.2008
Beiträge: 161


Verfasst am: 22.07.2008, 21:10


Danke so gehts =)
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge CSS server connecten 865 18.06.2007, 17:32
Keine neuen Beiträge Multi User Chat Server Rückantwort! 984 13.06.2007, 17:38
Keine neuen Beiträge Server - Client 745 09.06.2007, 22:25
Keine neuen Beiträge Server BIuld Funtkion 537 19.05.2007, 23:41
Keine neuen Beiträge Server und client? 558 12.04.2007, 10:51
 


[ Time: 0.0671s ][ Queries: 101 (0.0251s) ][ GZIP on - Debug on ]