améliorations de la lib network

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

améliorations de la lib network

Message par Dr. Dri »

Salut fred, j'aimerai bien que la lib network permette de connaître l'IP d'un client et son numéro de port (si c'est possible) à partir de son ID.
Aussi j'aimerai bien qu'elle ai quelques constantes, histoire d'avoir comme d'habitude un code plus clair...

Code : Tout sélectionner

Enumeration
  #PB_Network_NoEvent
  #PB_Network_Connect
  #PB_Network_DataReceived
  #PB_Network_FileReceived
  #PB_Network_Disconnect
EndEnumeration
Les noms bien sûr ne sont qu'une suggestion, ce sont ce que j'utilise en attendant...

Dri
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Bonjour,

Pour l'IP du client par son ID, je crois que c pour très bientôt (si j'ai bien compris l'anglais :-)). Avec la même fonction que Fred disait qu'il allait utiliser pour avoir l'IP, on peut aussi retourner une autre valeure qui serait le port... Fred, vas-tu aussi faire une fonction pour retourner le port utilisé par le client ?
Pour les constentes, c'est vrai qu'il y en a dans toutes les libs... ça serait effectivement pas mal.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Ca fait longtemps que je les utilise, mais j'ai jamais pensé à le demander...

Dri :-?
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

Pour l'IP, c'est prévu (cf : forum Anglais)
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Heis Spiter a écrit :Pour l'IP, c'est prévu (cf : forum Anglais)
ca confirme ce que dis Gangsta93. Faudrait que je retourne sur le forum officiel de temps en temps... Ici on a peu de visites de fred ces temps ci

Dri ^^
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Pour le port je ne saissi pas bien : on le connait puisque le server ne s'ouvre que su un port (malheuresement) non ?
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

je pensais au port du client qui est normalement >= 1024 généré aléatoirement par l'OS, il me semble

Dri
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

J'ai dis une baitise alors. :oops:
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Dr. Dri a écrit :je pensais au port du client qui est normalement >= 1024 généré aléatoirement par l'OS, il me semble

Dri
:lol: Moi je croyais que c'était le même port que celui auquel on se connecte, je comprends mieux comment on se connecte à plusieurs serveur différents sur un même mort, quel idiot :lol:
Marc
Messages : 32
Inscription : jeu. 29/janv./2004 23:08

Adresse IP par le ClientId

Message par Marc »

Bonjour,

Moi j'utilise le code suivant en attendant des fonctions intégrées:

Code : Tout sélectionner

Procedure.s NetGetLocalIP (ClientId.l)
  
  LocalIP.s =""
  Length.l = SizeOf(IPType)
  
  If getsockname_(ClientId, @IP.IPType, @Length) = 0
    LocalIP = StrU(IP\IP[0],#Byte)+"." + StrU(IP\IP[1], #Byte) + "." + StrU(IP\IP[2],#Byte) + "." + StrU(IP\IP[3], #Byte)
  EndIf
  
   
  ProcedureReturn LocalIP
  
EndProcedure

Procedure.s NetGetRemoteIP(ClientId.l)   
  
  RemoteIP.s =""
  Length.l = SizeOf(IPType)
  
  If getpeername_(ClientId, @IP.IPType, @Length) = 0
    RemoteIP = StrU(IP\IP[0],#Byte) + "." + StrU(IP\IP[1], #Byte) + "." + StrU(IP\IP[2],#Byte)+"."+StrU(IP\IP[3], #Byte) 
  EndIf
  
  ProcedureReturn RemoteIP
  
EndProcedure
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Message par poshu »

J'ai une question concernant le comportement de cette lib, que je trouve assez étrange:
Elle présente les packet dans l'ordre croissant des client ID, plutot que dans l'ordre d'arrivé.

Je m'explique:
Si les clients 18, 91, 2 & 15 envoient chacun un packet dans cet ordre, au moment de les receptionner, mon socket va me les livrer dans l'ordre: 2, 15, 18, 91. Trop pas cool è_é

C'est normal? j'ai chié quand j'ai fait des tests?
Si ca marche vraiment comme ca, y'aurait moyen d'avoir une correction plus "logique"?

Merci d'avance
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

ca je l'ai jamais constaté
(et pour cause je l'ai jamais testé)

en tout cas c'est clair que niveau logique c'est pas ca...

Dri
Répondre