C'est partis download activé !

Fred tu pourrais mettre plus de commande dans network stp car c'est quand même costaud. Du style un téléchargement de fichier avec call back sans bloquer le programme et avec barre de progression.
Du coup je montre un code server client mais j'ai un blem :
Quand le server envoit un message le client reçoit pas alors que l'inverse fonctione !
Server :
Code : Tout sélectionner
InitNetwork()
Eol.s = Chr(13) + Chr(10)
SEvent.l
DataLength.l = 2000
*Buffer = AllocateMemory(2000)
Global ClientID.l
Global DataLength
Global ThID.l
Global Eol
Global *Buffer
Procedure SReceiveData(value.b)
Repeat
DataLength = ReceiveNetworkData(ClientID, *Buffer, 2000)
Until DataLength <> 2000
MessageRequester("Server...", "Vous avez ressu un message : " + Eol + PeekS(*Buffer), 0)
KillThread(ThID)
EndProcedure
If CreateNetworkServer(120)
OpenWindow(0, 0, 0, 140, 90, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget, "Server")
CreateGadgetList(WindowID(0))
ButtonGadget(0, 10, 10, 120, 30, "Envoier un fichier")
ButtonGadget(1, 10, 50, 120, 30, "Envoier un message")
Repeat
Select WindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadgetID()
Case 0
If ClientID <> 0
SendNetworkFile(ClientID, OpenFileRequester("Envoi d'un fichier : ", "", "Fichier text | *.txt" , 0))
Else
MessageRequester("Server...", "Aucun client n'est connecté.", 0)
EndIf
Case 1
If ClientID <> 0
SendNetworkString(ClientID, InputRequester("Envoi d'un message", "Ecrivez votre message : ", ""))
Else
MessageRequester("Server...", "Aucun client n'est connecté.", 0)
EndIf
EndSelect
EndSelect
SEvent = NetworkServerEvent()
If SEvent
ClientID = NetworkClientID()
Select SEvent
Case 1
MessageRequester("Server...", "Un client s'est connecté.", 0)
Case 2
FreeMemory(0)
*Buffer = AllocateMemory(2000)
DataLength = ReceiveNetworkData(ClientID, *Buffer, 2000)
ThID = CreateThread(@SReceiveData(), #Null)
Case 3
ReceiveNetworkFile(ClientID, SaveFileRequester("Envoi d'un fichier : ", "", "Fichier text | *.txt;" , 1))
Case 4
MessageRequester("Server...", "Un client s'est déconnecté.", 0)
EndSelect
EndIf
ForEver
Else
MessageRequester("Erreur...", "Impossible de créer le server.", 0)
EndIf
client:
Code : Tout sélectionner
InitNetwork()
Eol.s = Chr(13) + Chr(10)
DataLength.l = 2000
CEvent.l
*Buffer = AllocateMemory(2000)
Global ConID.l
Global DataLength
Global ThID.l
Global Eol
Global *Buffer
Procedure CReceiveData(value.b)
Repeat
DataLength = ReceiveNetworkData(ConID, *Buffer, 2000)
Until DataLength <> 2000
MessageRequester("Client...", "Vous avez ressu un message : " + Eol + PeekS(*Buffer), 0)
KillThread(ThID)
EndProcedure
ConID = OpenNetworkConnection("000.000.0.0", 120)
If ConID
OpenWindow(0, 150, 0, 140, 90, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget, "Client")
CreateGadgetList(WindowID(0))
ButtonGadget(0, 10, 10, 120, 30, "Envoier un fichier")
ButtonGadget(1, 10, 50, 120, 30, "Envoier un message")
Repeat
Select WindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadgetID()
Case 0
SendNetworkFile(ConID, OpenFileRequester("Envoi d'un fichier : ", "", "Fichier text | *.txt" , 0))
Case 1
SendNetworkString(ConID, InputRequester("Envoi d'un message", "Ecrivez votre message : ", ""))
EndSelect
EndSelect
CEvent = NetworkClientEvent(ConID)
If CEvent
Select CEventa
Case 2
FreeMemory(0)
*Buffer = AllocateMemory(2000)
DataLength = ReceiveNetworkData(ConID, *Buffer, 2000)
ThID = CreateThread(@CReceiveData(), #Null)
Case 3
ReceiveNetworkFile(ConID, SaveFileRequester("Envoi d'un fichier : ", "", "Fichier text | *.txt;" , 1))
EndSelect
EndIf
ForEver
Else
MessageRequester("Erreur...", "Impossible de se connecter au server.", 0)
EndIf