cs_marwenovich
Messages postés7Date d'inscriptionjeudi 22 juillet 2010StatutMembreDernière intervention 7 juillet 2012
-
25 janv. 2011 à 17:20
cs_marwenovich
Messages postés7Date d'inscriptionjeudi 22 juillet 2010StatutMembreDernière intervention 7 juillet 2012
-
24 mars 2011 à 13:37
slt a tous!!!
j'ai besoin d'une petite aide svp !!!!!!!! j'ai un petit code qui permet d'envoyer des fichiers d'un ordinateur a un autre via winsock;;;le fichier est recue mais s'il est seullement un fichier video ou audio,,s'il est un exe ou image ou autre il sera corrompue!!!!!
**au niveau du serveur:*********
*********************************
If InStr(1, sIncoming, "|GETFILE|") <> 0 Then
SendFile Mid$(sIncoming, 10, Len(sIncoming)), SockExplorer
SockExplorer.SendData "|COMPLETE|"
Public Sub SendFile(Filename As String, WinS As Winsock)
On Error Resume Next
Dim FreeF As Integer
Dim LenFile As Long
Dim nCnt As Long
Dim LocData As String
Dim LoopTimes As Long
Dim i As Long
FreeF = FreeFile
Open Filename For Binary As #99
nCnt = 1
LenFile = LOF(99)
WinS.SendData "|FILESIZE|" & LenFile
DoEvents
Sleep (400)
Do Until nCnt >= (LenFile)
LocData = Space$(1024)
Get #99, nCnt, LocData
If nCnt + 1024 > LenFile Then
WinS.SendData Mid$(LocData, 1, (LenFile - nCnt))
Else
WinS.SendData LocData
End If
nCnt = nCnt + 1024
Loop
Close #99
End Sub
[size=50]**au niveau du client:*********
*********************************
If InStr(1, Strdata, "|COMPLETE|") <> 0 Then
Open .FileName For Binary As #1
Put #1, , Strdata
Close #1
**********************************************************************************/size c'est la partie principale du code,, et mercie d'avance
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 25 janv. 2011 à 18:17
Salut
Grand classique du Winsock.
Dans ton cas, c'est surement dû au fait que tu lis les données sous forme d'une String (LocData)
Il vaudrait mieux lire un tableau de Bytes
Emission :
Dim LocData() As Byte
(...)
If nCnt + 1024 > LenFile Then
ReDim LocData(0 To LenFile - nCnt - 1)
Else
ReDim LocData(0 To 1023)
End If
Get #99, nCnt, LocData() ' ou LocData(0), à tester
SendData ...
Côté réception, il faudra aussi dimensionner Strdata en un tableau de Byte
Tu aurais été inspiré de lire quelques sources à ce sujet : il y a de bonnes techniques.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_marwenovich
Messages postés7Date d'inscriptionjeudi 22 juillet 2010StatutMembreDernière intervention 7 juillet 2012 24 mars 2011 à 13:37
mercie jack pour votre aide :) :) oui je vais testé et mercie,,, l'envoie marche bien sauf avec les images (.jpg) et some times avec des (.exe),,je vais essayé avec votre aide .:) thenkkkk you