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.