Pourquoi mon serveur ne tourne qu'en local ?
Publié : sam. 21/mars/2009 10:41
Voici mon serveur :
L'include :
Voila : ce code ne fonctionne qu'avec 127.0.0.1 quand j'essaye de me connecter avec le coté client :
L'include :
Merci de votre aide !
Code : Tout sélectionner
IncludeFile "Include.pb"
If InitNetwork() = 0
MessageRequester("Erreur", "Impossible d'initialiser le serveur !", 0)
End
EndIf
Global boolState = 0, itemSel = 0
Open_serv()
HideWindow(#serv, boolState)
AddSysTrayIcon(1, WindowID(#serv), LoadImage(0, "16.ico"))
SysTrayIconToolTip(1, "Serveur chat")
Port = Val(InputRequester("Port", "Entrez le port de communication (6000-7000)", "6279"))
*Buffer = AllocateMemory(65536)
Dim ClientList(31)
Client = 0
If CreateNetworkServer(0, Port)
AddGadgetItem(#text, -1, "Serveur créé : port "+Str(Port), Port)
Repeat
SEvent = NetworkServerEvent()
If SEvent
ClientID = EventClient()
Select SEvent
Case 1 ;Nouveau client
Date$ = FormatDate("%dd/%mm/%yyyy - %hh:%ii:%ss >> Un nouveau client s'est connecté : ", Date()) + IPString(GetClientIP(ClientID)) + " ->ID : "+Str(ClientID)
ClientList(Client) = ClientID
Client = Client + 1
AddGadgetItem(#text, -1, Date$)
SetGadgetState(#text, itemSel+1)
itemSel = itemSel + 1
Case 2 ;Paquet reçu
Date$ = FormatDate("%dd/%mm/%yyyy - %hh:%ii:%ss >> Un client a envoyé un paquet : ", Date()) + IPString(GetClientIP(ClientID)) + " ->ID : "+Str(ClientID)
ReceiveNetworkData(ClientID, *Buffer, 65536)
Date$ = Date$+" -> "+PeekS(*Buffer, -1,#PB_UTF8)
AddGadgetItem(#text, -1, Date$)
SetGadgetState(#text, itemSel+1)
itemSel = itemSel + 1
For i = 0 To 31
If ClientList(i)
SendNetworkString(ClientList(i), PeekS(*Buffer, -1,#PB_UTF8))
EndIf
Next
FreeMemory(*Buffer)
*Buffer = AllocateMemory(65536)
Case 3 ;Fichier reçu
Date$ = FormatDate("%dd/%mm/%yyyy - %hh:%ii:%ss >> Un client a envoyé un fichier : ", Date()) + IPString(GetClientIP(ClientID)) + " ->ID : "+Str(ClientID)
;AddGadgetItem(#text, -1, Date$)
;ReceiveNetworkFile(ClientID, SaveFileRequester("Où enregistrer ?", "C:\", "*.*", 1))
;SetGadgetState(#text, itemSel+1)
;itemSel = itemSel + 1
Case 4 ;Client parti
Date$ = FormatDate("%dd/%mm/%yyyy - %hh:%ii:%ss >> Un client s'est déconnecté", Date()) + " ->ID : "+Str(ClientID)
For i = 0 To 31
If ClientID = ClientList(i)
ClientList(i) = 0
EndIf
Next
AddGadgetItem(#text, -1, Date$)
SetGadgetState(#text, itemSel+1)
itemSel = itemSel + 1
EndSelect
EndIf
Event = WindowEvent()
If Event = #PB_Event_SysTray
If EventType() = #PB_EventType_LeftDoubleClick
boolState = boolState XOr 1
HideWindow(#serv, boolState)
EndIf
EndIf
If Event = #PB_Event_CloseWindow
CloseWindow(#serv)
Quit = 1
EndIf
If Event = #PB_Event_SizeWindow
ResizeGadget(#text, 0, 0, WindowWidth(#serv), WindowHeight(#serv))
EndIf
Delay(1)
Until Quit = 1
CloseNetworkServer(0)
Else
MessageRequester("Erreur", "Impossible de créer le serveur. Il est probable que le port soit déjà utilisé.", 0)
EndIf
End
Code : Tout sélectionner
; PureBasic Visual Designer v3.95 build 1485 (PB4Code)
;- Window Constants
;
Enumeration
#serv
EndEnumeration
;- Gadget Constants
;
Enumeration
#text
EndEnumeration
Procedure Open_serv()
If OpenWindow(#serv, 5, 5, 350, 280, "Serveur IrisChatroom version 1.0.0", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
ListViewGadget(#text, 0, 0, 350, 280)
EndIf
EndProcedure
Code : Tout sélectionner
; PureBasic Visual Designer v3.95 build 1485 (PB4Code)
IncludeFile "Common.pb"
Open_chat()
AddKeyboardShortcut(#chat, #PB_Shortcut_Control | #PB_Shortcut_Return, #send)
SetGadgetState(#IP, MakeIPAddress(127, 0, 0, 1))
*Buffer = AllocateMemory(65536)
Global hConnect
InitNetwork()
hConnect = OpenNetworkConnection(IPString(GetGadgetState(#IP)), Val(GetGadgetText(#port)))
If Not hConnect
SetGadgetText(#connect, "Connexion")
DisableGadget(#send, 1)
Else
SetGadgetText(#connect, "Déconnexion")
DisableGadget(#send, 0)
EndIf
Repeat
Delay(1)
Event = WindowEvent()
If hConnect
NEV = NetworkClientEvent(hConnect)
EndIf
If NEV
ReceiveNetworkData(hConnect, *Buffer, 65536)
st$ = PeekS(*Buffer, -1, #PB_UTF8)
FreeMemory(*Buffer)
*Buffer = AllocateMemory(65536)
AddGadgetItem(#chatroom, -1, st$)
EndIf
If Event = #PB_Event_Gadget
Select EventGadget()
Case #connect
text$ = GetGadgetText(#connect)
If text$ = "Connexion"
hConnect = OpenNetworkConnection(IPString(GetGadgetState(#IP)), Val(GetGadgetText(#port)))
If hConnect
SetGadgetText(#connect, "Déconnexion")
DisableGadget(#send, 0)
Else
MessageRequester("Erreur !", "La connexion a échoué !")
EndIf
Else
CloseNetworkConnection(hConnect)
SetGadgetText(#connect, "Connexion")
DisableGadget(#send, 1)
EndIf
Case #send
If GetGadgetText(#message) And GetGadgetText(#pseudo)
text.s = GetGadgetText(#pseudo) + " dit :" + Chr(13) + Chr(10) + GetGadgetText(#message)
SetGadgetText(#message, "")
SendNetworkString(hConnect, text)
SetActiveGadget(#message)
EndIf
EndSelect
EndIf
Until WindowEvent() = #PB_Event_CloseWindow
If hConnect
CloseNetworkConnection(hConnect)
EndIf
CloseWindow(#chat)
End
Code : Tout sélectionner
;
; PureBasic Visual Designer v3.95 build 1485 (PB4Code)
;- Window Constants
;
Enumeration
#chat
EndEnumeration
;- Gadget Constants
;
Enumeration
#send
#chatroom
#pseudo
#tPseudo
#message
#IP
#tIP
#tPort
#port
#connect
EndEnumeration
;- Fonts
Global FontID1
FontID1 = LoadFont(1, "Trebuchet MS", 10)
Procedure Open_chat()
If OpenWindow(#chat, 216, 0, 640, 480, "IrisChatroom", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_WindowCentered )
ButtonGadget(#send, 275, 80, 95, 25, "Envoi", #PB_Button_Default)
SetGadgetFont(#send, FontID1)
EditorGadget(#chatroom, 0, 110, 640, 340, #PB_Editor_ReadOnly)
SetGadgetFont(#chatroom, FontID1)
StringGadget(#pseudo, 355, 455, 195, 20, "")
TextGadget(#tPseudo, 280, 455, 80, 20, "Pseudo :", #PB_Text_Center)
SetGadgetFont(#tPseudo, FontID1)
EditorGadget(#message, 0, 0, 640, 75)
SetGadgetFont(#message, FontID1)
IPAddressGadget(#IP, 40, 455, 115, 20)
TextGadget(#tIP, 0, 455, 40, 20, "IP :", #PB_Text_Center)
SetGadgetFont(#tIP, FontID1)
TextGadget(#tPort, 165, 455, 40, 20, "Port :", #PB_Text_Center)
SetGadgetFont(#tPort, FontID1)
StringGadget(#port, 210, 455, 70, 20, "6279", #PB_String_Numeric)
SetGadgetFont(#port, FontID1)
ButtonGadget(#connect, 555, 455, 80, 20, "Connexion")
SetGadgetFont(#connect, FontID1)
SendMessage_(GadgetID(#chatroom), #EM_AUTOURLDETECT, 0, 0)
EndIf
EndProcedure