Page 1 sur 1

améliorations de la lib network

Publié : lun. 25/avr./2005 9:12
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

Publié : lun. 25/avr./2005 9:44
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.

Publié : lun. 25/avr./2005 10:05
par Dr. Dri
Ca fait longtemps que je les utilise, mais j'ai jamais pensé à le demander...

Dri :-?

Publié : lun. 25/avr./2005 10:45
par Heis Spiter
Pour l'IP, c'est prévu (cf : forum Anglais)

Publié : lun. 25/avr./2005 10:50
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 ^^

Publié : lun. 25/avr./2005 16:19
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 ?

Publié : lun. 25/avr./2005 19:41
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

Publié : lun. 25/avr./2005 19:44
par gansta93
J'ai dis une baitise alors. :oops:

Publié : lun. 25/avr./2005 20:09
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:

Adresse IP par le ClientId

Publié : mer. 27/avr./2005 21:24
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

Publié : mer. 01/juin/2005 3:26
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

Publié : mer. 01/juin/2005 9:05
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