Cut&Glue / SendNetworkfile

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Anonyme 2
Messages : 183
Inscription : ven. 18/mars/2011 11:53

Cut&Glue / SendNetworkfile

Message par Anonyme 2 »

Yo,
J'aimerais un code OPERATIONNEL contenant les commandes SendNetworkFile() et ReceiveNetworkFile(), et des explications avec, merci!

PS: j'ai essayer plusieurs fois de les faire marchers en utilisant des codes fournis avec le manuel, mais je n'y suis jamais arrivé..
Dernière modification par Anonyme 2 le mar. 17/avr./2012 9:42, modifié 3 fois.
Avatar de l’utilisateur
Atlante
Messages : 337
Inscription : mer. 29/juin/2011 18:35
Localisation : Paris

Re: Networkfile

Message par Atlante »

Tu abuses ! Si tu arrives pas a faire fonctionner des codes avec sendnetworkfile et receiveNetworkFile : c'est que tu ne prends pas la peine de chercher !

De chercher tout cours devant ton écran ! Et sur le forum !
Si tu prends pas la peine de poster du code et de dire où tu bloques cela sert à rien.
Prochain post comme ça où tu passes ta commande je LOCK direct.

Cordialement.

Atlante.
Modérateur
Config : Intel I5 4670K, Nvidia Geforce GTX 1060, 16go RAM, SSD 256go, DD 2000go
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Networkfile

Message par Backup »

............
Dernière modification par Backup le sam. 01/oct./2011 9:19, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Networkfile

Message par falsam »

@Dobro :J'ai cru que j'avais loupé une annonce !!! A priori il est bien modérateur comme on peut le voir sur ce lien mais qui peut bien se cacher derrière hein ? Inscrit depuis juin, moins de 10 messages. Un hacker tu crois ? :p
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Networkfile

Message par Backup »

................
Dernière modification par Backup le sam. 01/oct./2011 9:19, modifié 2 fois.
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Networkfile

Message par G-Rom »

c'est un pote à Fred. Rien de grave les gars.
mieux vaut un modo actif. ;)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Networkfile

Message par Backup »

...........
Dernière modification par Backup le sam. 01/oct./2011 9:20, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Networkfile

Message par falsam »

G-Rom a écrit :c'est un pote à Fred. Rien de grave les gars.
mieux vaut un modo actif. ;)
Pote ou pas, Atlante pourrait être moins radical dans ses interventions. J’espère qu'il a l'estomac solide :)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Networkfile

Message par G-Rom »

Pote ou pas, Atlante pourrait être moins radical dans ses interventions.
je ne vois pas de "radicalité" dans ces interventions.
certes , mais une présentation aurai ete la moindre des choses non ?
Sur le fond , je suis d'accord avec toi, mais dans l'absolu , a t'ont besoin de savoir comment il s'appelle , que prend t'il au petit dej ou avec quelle marque de pq il s'essuie ?
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Networkfile

Message par Ar-S »

Je suis content qu'un modo vienne enfin intervenir dans les topics, on se sans moins abandonné.
Pour rejoindre Dobro, un simple "bonjour je suis le nouveau modo" aurait été sympa.
Sur ce bienvenue Atlante.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Atlante
Messages : 337
Inscription : mer. 29/juin/2011 18:35
Localisation : Paris

Re: Networkfile

Message par Atlante »

Bonjour,

Pour vous rassurer : je me suis présenté dans le forum discution générale annonce.
Je ne voulai pas créer une petite polémique, tout ce que je souhaite c'est que le forum tourne bien ;)
C'est pour cela que les post comme celui ci m'insuporte : Le forum a une fonction rechercher et ensuite s'il veut que tout le travail lui soit fait dans ce cas il paye un développeur.

Comment aider une personne qui ne dit pas où elle bloque ?
Sinon oui j'ai l'estomac solide, mais moins les intestins mdr ;)
Modérateur
Config : Intel I5 4670K, Nvidia Geforce GTX 1060, 16go RAM, SSD 256go, DD 2000go
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Networkfile

Message par Backup »

..............
Dernière modification par Backup le sam. 01/oct./2011 9:20, modifié 1 fois.
Anonyme 2
Messages : 183
Inscription : ven. 18/mars/2011 11:53

Re: Networkfile

Message par Anonyme 2 »

...
Dernière modification par Anonyme 2 le jeu. 23/janv./2014 20:56, modifié 1 fois.
Avatar de l’utilisateur
Atlante
Messages : 337
Inscription : mer. 29/juin/2011 18:35
Localisation : Paris

Re: Networkfile

Message par Atlante »

Je viens de regarder l'aide les deux exemples. Il suffit que tu ajoutes un sendnetworkfile dans l'exemple client.
Dans l'exemple serveur juste modifier le nom en reception.

Je vais te prouver que tu as pas cherché beaucoup :

Serveur :

Code : Tout sélectionner


; ------------------------------------------------------------
;
;   PureBasic - Network (Server) example file
;
;    (c) 2003 - Fantaisie Software
;
; ------------------------------------------------------------
;

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 6832
*Buffer = AllocateMemory(1000)

If CreateNetworkServer(0, Port)

  MessageRequester("PureBasic - Server", "Server created (Port "+Str(Port)+").", 0)
  
  Repeat
      
    SEvent = NetworkServerEvent()
  
    If SEvent
    
      ClientID = EventClient()
  
      Select SEvent
      
        Case #PB_NetworkEvent_Connect
          Debug "A new client has connected !"
  
        Case #PB_NetworkEvent_Data
          Debug "Client "+Str(ClientID)+" has send a packet !"
          ReceiveNetworkData(ClientID, *Buffer, 1000)
          MessageRequester("Info", "String: "+PeekS(*Buffer), 0)
  
        Case #PB_NetworkEvent_File
          Debug "Client "+Str(ClientID)+" has send a file via the network !"
          If ReceiveNetworkFile(ClientID, "D:\TEST_bis.txt")
            Debug "fichier reçu"
          EndIf
          
        Case #PB_NetworkEvent_Disconnect
          MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has closed the connection...", 0)
          Quit = 1
    
      EndSelect
    EndIf
    
  Until Quit = 1 
  
  MessageRequester("PureBasic - Server", "Click to quit the server.", 0)
  
  CloseNetworkServer(0)
Else
  MessageRequester("Error", "Can't create the server (port in use ?).", 0)
EndIf

  
End   

Client :

Code : Tout sélectionner

;
; ------------------------------------------------------------
;
;   PureBasic - Network (Client) example file
;
;    (c) 2003 - Fantaisie Software
;
; ------------------------------------------------------------
;

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 6832

ConnectionID = OpenNetworkConnection("127.0.0.1", Port)
If ConnectionID
  MessageRequester("PureBasic - Client", "Client connected to server...", 0)
  
    
  If SendNetworkFile(ConnectionID, "D:\test.txt")
Debug "fichier envoyé"
  EndIf
  
  MessageRequester("PureBasic - Client", "Cliquez sur ok pour quitter", 0)
  CloseNetworkConnection(ConnectionID)
Else
  MessageRequester("PureBasic - Client", "Can't find the server (Is it launched ?).", 0)
EndIf
  
End   
Modérateur
Config : Intel I5 4670K, Nvidia Geforce GTX 1060, 16go RAM, SSD 256go, DD 2000go
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Networkfile

Message par falsam »

Serveur : enregistre sous et crées un exécutable du code ci-dessous. Si tu es sous Vista ou Window7, ouvre la boite de dialogue Option du compilateur accessible depuis le menu compilateur et coches la case L'application nécessite les droits administrateurs.

Code : Tout sélectionner

;Server
EnableExplicit

Enumeration
  #MainForm
  #Server
  #ServerLog
  #ServerMessage
EndEnumeration

Global Port.i, *Buffer.i, WEvent.l, NEvent.l, ClientID.l

Port = 6832
*Buffer = AllocateMemory(1000)


;Affichage de la fenetre principale de l'application
OpenWindow(#MainForm, 0, 0, 500, 500, "Mon serveur")
ListViewGadget(#ServerLog, 10, 10, 480, 420)
TextGadget(#PB_Any, 10, 453, 50, 22, "Message :")
StringGadget(#ServerMessage, 70, 450, 420, 22, "Serveur inactif", #PB_String_ReadOnly)

;Initialisation de l'environnement Network
If InitNetwork() = 0
  SetGadgetText(#ServerMessage, "Aucune pile TCP/IP n'est disponible sur le système.")
EndIf

;Crée un nouveau serveur réseau sur l'ordinateur local sur le port spécifié
If CreateNetworkServer(#Server, Port)

  SetGadgetText(#ServerMessage, "Serveur actif sur le port "+Str(Port)+".")
  
  Repeat
    WEvent = WindowEvent()  
    NEvent = NetworkServerEvent()
    
    ;Evenements Network
    If NEvent
      ClientID = EventClient()
      
      Select NEvent
        Case #PB_NetworkEvent_Connect ;Un client se connecte
          AddGadgetItem(#ServerLog, -1, "Le client ("+Str(ClientID)+") se connecte.")
          
        Case #PB_NetworkEvent_Data ;Un client envoie des données
          AddGadgetItem(#ServerLog, -1, "Le client ("+Str(ClientID)+") envoie des données.")
          ReceiveNetworkData(ClientID, *Buffer, 1000)
          AddGadgetItem(#ServerLog, -1, "String: "+PeekS(*Buffer))
          FillMemory(*Buffer, 1000)
          
        Case #PB_NetworkEvent_File ;Un client envoie un fichier
          AddGadgetItem(#ServerLog, -1, "Client "+Str(ClientID)+" envoie un fichier.")
          ReceiveNetworkFile(ClientID, "test2.txt")
          
        Case #PB_NetworkEvent_Disconnect ;Un client se deconnecte
          AddGadgetItem(#ServerLog, -1, "Le Client ("+Str(ClientID)+") se deconnecte.")
    
      EndSelect          
    EndIf
    
    ;Evenements Windows
    Select WEvent  
      Case #PB_Event_CloseWindow
        CloseNetworkServer(#Server)
        End
    EndSelect

  ForEver
    
Else
  MessageRequester("Erreur", "Imposible de créer le serveur,"+#CRLF$+"Le port "+Str(Port)+" est peut être en cours d'utilisation")
EndIf
Une fois que ton serveur est lancé, vérifies que tu y accèdes depuis ton navigateur internet en tapant dans l'adresse url son adresse ip + port. Etant en local l'adresse sera 127.0.0.1:6832.
Ton serveur devrait indiquer qu'un client se connecte.

Client : Compile et crées un exécutable du code ci-dessous que tu placeras pour le moment dans le même dossier que ton serveur. (C'est l'exemple qui se trouve dans la documentation de Pure basic)

Code : Tout sélectionner

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

IP.s = "127.0.0.1"
Port = 6832

ConnectionID = OpenNetworkConnection(IP, Port)
If ConnectionID
  SendNetworkFile(ConnectionID, "test1.txt")
  CloseNetworkConnection(ConnectionID)
Else
  MessageRequester("PureBasic - Client", "Can't find the server (Is it launched ?).", 0)
EndIf
  
End
Crées un fichier texte (Ex : test1.txt) et place le dans le même dossier que ton client.


Pour résumé tu dois avoir dans un même dossier
-Ton programme server.exe compiler avec l'option droit administrateur.
-Ton programme client.exe
-Un fichier test1.txt

Lance le serveur puis le client.
Si tout se passe bien, tu as maintenant un fichier test2.txt

Fin du test en local :)

P.S. Atlante désolé, j'ai été long à la rédaction.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre