begin process at 2010 02 10 13:02:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

Envoi fichier winsock ...pk sa marche po?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Envoi fichier winsock ...pk sa marche po?

jeudi 8 avril 2004 à 19:11:08 | Envoi fichier winsock ...pk sa marche po?

nashoy

Salut à tous,
j'ai cherché toutes les sources possibles sur vbfrance, je les ai analysées, et pis bon, j'ai tjs pas vraiment compris comment faire pour envoyer des fichiers. Vu que j'en ai besoin pour un programme que je suis en train de faire, j'ai cherché une source simple (je remercie l'auteur qui se reconaitra ) et j'ai essayé de l'inserer dans ma source.
Mais voila, ça ne marche tjs pas comme voulu...
C'est pk je vous demande a l'aide ... merci

Voila ma source client :



Private Sub Command1_Click()
MyPath = "c:\" ' Définit le chemin d'accès.

End Sub




Private Sub Command3_Click()
Dim Ip As String

If Serveur.State <> sckConnected Then
Serveur.Close
Ip = InputBox("Veuillez entrer l'ip du pc distant(ou le nom d'hôte", "NaShOy", "")

Else: MsgBox "Vous êtes déjà connecté", vbExclamation, "NaShOy"

End If

If Ip <> "" Then Serveur.Connect Ip, 5010



End Sub


Private Sub Serveur_DataArrival(ByVal bytesTotal As Long)
Dim msg As String

Serveur.GetData msg



If Left(msg, 6) = "/FILE:" Then
Pos1 = InStr(2, msg, "/")
Fichier = CStr(Mid(msg, 7, Pos1 - 7))
rep = MsgBox("Le serveur essaie de vous envoyer le fichier : " & Fichier & vbCrLf & "Voulez-vous le recevoir ?", vbYesNo + vbQuestion + vbSystemModal, " Transfert de fichier")

If rep = vbYes Then
' Envoi accepté
Temp = CDbl(Right(msg, Len(msg) - Pos1)) ' Taille du fichier dans Temp
Serveur.SendData "/ACCEPT" ' On envoie la réponse au serveur
Else

Serveur.SendData "/REFUSE"
End If

Else



If Num = 0 Then
' Début de l'envoi du fichier
Num = FreeFile ' Numero de fichier libre
Open "c:\fichier.ext" For Binary As #Num
Put #Num, , msg ' Début d'écriture

Else

Put #Num, , msg
End If

Etat = Etat + bytesTotal ' Taille des données reçues
DoEvents
If Etat = Temp Then

Close #Num ' Ferme le fichier
Num = 0
Etat = 0

End If

End If

End Sub


Private Sub TmrEtat_Timer()

Select Case Serveur.State
Case 0
LblEtat.Caption = "Déconnecté"
Case 7
LblEtat.Caption = "Connecté"

Case 4
Serveur.Close
End Select

If Serveur.State <> sckClosed Then
If Serveur.State <> 7 Then Serveur.Close
End If


End Sub


Enfait le client se connecte au serveur, et le serveur renvoi le listage.

Et voici le code serveur :



Private Sub Client_Close()

Client.Close
Client.Listen


End Sub



Private Sub Client_ConnectionRequest(ByVal requestID As Long)
Client.Close
Client.Accept requestID
End Sub

Private Sub Client_DataArrival(ByVal bytesTotal As Long)
' On récupère la réponse envoyé par le serveur dans une variable de
' type String.

Client.GetData msg, vbString

Select Case msg
Case "/REFUSE"
' Réponse -
Case "/ACCEPT"
' Réponse +
Call SendFile
End Select
End Sub

Private Sub Command1_Click()
MyPath = "c:\" ' Définit le chemin d'accès.
Charge
'Charge2
End Sub







Private Sub Command3_Click()
For p = Len(txt_file) To 1 Step -1
If Mid(txt_file, p, 1) = "\" Then Exit For
Next p

' Syntaxe d'envoi de fichier > "/FILE:NOM_DU_FICHIER/TAILLE

Client.SendData "/FILE:" & Right(txt_file, Len(txt_file) - p) & "/" & FileLen(txt_file)

End Sub

Private Sub Form_Load()
Client.Close
Client.Listen
End Sub

Private Sub List1_DblClick()
Dim Dossier As String

Dossier = List1.List(List1.ListIndex) 'renvoi le txt,tandis que list1.listindex renvoi le num de l'item

If Right$(MyPath, 1) <> "\" Then
MyPath = MyPath & "\"
End If
MyPath = MyPath & Dossier & "\"

List1.Clear

Text1.Text = MyPath 'pour récupérer le contenu de la variable dans Charge2


Charge

Charge2


End Sub


Private Sub TmrListen_Timer()
If Client.State <> 2 Then '2 = scklistening
If Client.State <> sckConnected Then Client.Close: Client.Listen
End If
End Sub





Public Sub Trie()
Dim Pos1, Pos2 As Integer
Dim Index As Integer
Dim Inhalt_List1 As String

Inhalt_List1 = List1.List(0)

Index = 0
Pos1 = InStr(1, Inhalt_List1, "R")

Do

Pos2 = InStr(Pos1 + 1, Inhalt_List1, "R")

' Ausstieg
If Pos2 = 0 Then

List1.List(Index) = Mid(Inhalt_List1, Pos1 + 1, Len(Inhalt_List1) - Pos1)
Exit Do

End If

List1.List(Index) = Mid(Inhalt_List1, Pos1 + 1, Pos2 - Pos1 - 1)

Index = Index + 1
Pos1 = Pos2

Loop


List1.List(0) = Replace(List1.List(0), "R", "")

End Sub



Public Sub Charge2()

Dim Répertoire As String
Dim FichierTrouvé As String

List2.Clear

Répertoire = Text1.Text
FichierTrouvé = Dir(Répertoire & "*.*")

While FichierTrouvé <> ""
Text1.Text = Text1.Text & vbCrLf & FichierTrouvé
FichierTrouvé = Dir()
'client.SendData "F" & FichierTrouvé
Wend


End Sub

Public Sub Charge()
MyPath = "c:\"
' Affiche les noms dans C:\ représentant des
' répertoires.

' Extrait la première entrée.
MyName = Dir(MyPath, vbDirectory)
Do While MyName <> "" ' Commence la boucle.
' Ignore le répertoire courant et le répertoire
' contenant le répertoire courant.
If MyName = "." Then

If MyName = ".." Then

MyName = "Retour"

List1.AddItem MyName

End If

Else

' Utilise une comparaison au niveau du bit pour vérifier que MyName est un répertoire.
If (GetAttr(MyPath & "\" & MyName) And vbDirectory) = vbDirectory Then
'client.SendData "R" & MyName
' Affiche l'entrée uniquement si elle représente un répertoire.
End If
End If
MyName = Dir ' Extrait l'entrée suivante.
Loop



End Sub

Public Sub SendFile()

' Envoi du fichier

qnr = FreeFile ' Numéro de fichier libre

Open txt_file For Binary As #qnr

' Affichage du statut
Envoie = True

' On découpe le fichier en parties de 100 KO pour accélérer l'envoi du fichier
nb = LOF(qnr) / 100000
If nb <> Int(nb) Then nb = Int(nb) + 1

' On crée une boucle qui envoie les parties de 100 KO au client
For i = 1 To nb
If i <> nb Then
' Préparation du tampon pour les parties de 100 ko
temp$ = Space(100000)
Else
' Préparation du tampon pour le reste du fichier
temp$ = Space(LOF(qnr) - (100000 * (i - 1)))
End If

Get #qnr, , temp$ ' Lecture du fichier dans le tampon
DoEvents ' Rend la main à windows

Client.SendData temp$ ' Envoie les données

Next i

Close #qnr ' Fermeture du fichier

End Sub





Voila ... donc je remercie d'avance les personnes qui auront la bonté de m'aider
nashoy
dimanche 11 avril 2004 à 22:07:55 | Re : Envoi fichier winsock ...pk sa marche po?

nashoy

C'est bon, j'ai compris mon erreur, enfin pas vraiment l'erreur mais j'ai trouvé une autre maniere de faire.
nashoy
jeudi 10 juin 2004 à 14:52:15 | Re : Envoi fichier winsock ...pk sa marche po?

Hteamspy


Salut, si ta trouvé la solution et que tu repasse par la là, tu pourrait mettre la source en visu ou par zip sur le site stp.

Merci beaucoup

Nicolas ( nicolas.alpi@laposte.net )
jeudi 10 juin 2004 à 15:00:53 | Re : Envoi fichier winsock ...pk sa marche po?

nashoy

Salut Nicolas,
Et bien en fait je vais te donner la source à partir de laquelle je me suis inspiré (encore merci à l'auteur) :
Voilà le lien
Bonne chance,
nashoy
vendredi 11 juin 2004 à 09:20:34 | Re : Envoi fichier winsock ...pk sa marche po?

Hteamspy


Super, je vais maté ça.

Merci beaucoup

Nicolas


Cette discussion est classée dans : fichier, end, serveur, client, list1


Répondre à ce message

Sujets en rapport avec ce message

Socket [ par yvesyves ] Bonjour,J'ai créé un serveur et un client. Le serveur un TcpClient envoie un fichier au client par bloc de 102400 octets.Voilà comment je fais pour fa client serveur connection ! [ par jackky ] bonjour a vous!surement quelqu'un sera a la hauteur pour me fournir une reponse a cette question! Comment peut-on savoir ce qu'un fichier ser Winsock avec internet [ par gregmena ] GREG_SIDIUSBonjour à tous, je viens de commencer à programmer avec le contrôle Winsock et j'ai un problème. Le voici :je viens Internet et Winsock [ par gregmena ] GREG_SIDIUSBonjour à tous, je viens de commencer à programmer avec le contrôle Winsock et j'ai un problème. Le voici :je viens de Envoi fichier winsock ... [ par nashoy ] Bonjours à tous,donc voilà, ça fait mnt plusieurs jours que je cherche comment envoyer simplement (enfin le stricte nécessaire) un fichier d'un winsoc téléchargement de fichier winsock [ par consiliblob ] Lu,J'ai créé un client et un serveur avec winsock, et à un moment quand j'essaye d'envoyer un fichier depuis le client au serveur (avec une connexion Des mots des mots encore des mots y en a marre! [ par CCJ ] Salut a tous j'espere que vous etes pas aussi debutant que moi sinon vous pourez pas m'aider.Le probleme est que je ne pige pas la moitié(pour etre ge probleme avec udp [ par nesquik06 ] Bonjour, j essaie de faire fonctionner un client serveur simple avec udp,il n y a rien a faire voila mon code serveur : procedure TForm1.ServeurStatus probleme avec udp [ par nesquik06 ] Bonjour, j essaie de faire fonctionner un client serveur simple avec udp,il n y a rien a faire voila mon code serveur : procedure TForm1.ServeurStatus transfert fichiers serveur-client [ par idelphonse ] bonjour, J'ai un grand problème. j'utilise un serveur ftp(serv U)pour des transferts de fichiers avec mes clients. il se fait que quand je leur envois


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales