libnatpmp

Een poging om een draagbare en volledig compliant implementatie van het protocol voor de clientzijde te maken
Download nu

libnatpmp Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • BSD License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Thomas Bernard
  • Uitgever website:
  • http://miniupnp.free.fr/libnatpmp.html

libnatpmp Tags


libnatpmp Beschrijving

Een poging om een draagbaar en volledig aan de uitvoering van het protocol voor de client maken libnatpmp is een poging om een draagbaar en volledig aan de uitvoering van het protocol voor de client maken. Het is gebaseerd op non-blocking sockets en alle oproepen van de API zijn asynchroon. libnatpmp bibliotheek is hierdoor zeer goed NAT-PMP code geven event driven code.NAT PMP-integratie is de directe gelijktijdige de UPnP IGD specificatie. Het is het verstrekken van een manier om NAT te doen. Het behoort tot EtherTalk specificaties. U kunt de beschrijving van dit eenvoudige protocol hier of door het lezen van het ontwerp. Op dit moment voornamelijk wordt ondersteund door Apple software en hardware.Use libnatpmp in uw programsIt moet heel gemakkelijk te libnatpmp gebruiken in een C / C ++ programma. Alle API wordt beschreven in het natpmp.h bestand. · In de eerste plaats, een variabele van het type natpmp_t moet worden toegewezen en initnatpmp () moet worden aangeroepen. · Sendpublicaddressrequest () of sendnewportmappingrequest () genoemd kan worden. · Voor elk verzoek verzonden, moet readnatpmpresponseorretry () worden genoemd, zolang het rendement NATPMP_TRYAGAIN. · als u wacht op de bus (veld en in het natpmp_t object) klaar te zijn voor het lezen van het gebruik van het systeem noemt, zoals select () of poll (), kunt u gebruik maken getnatpmprequesttimeout () om te weten hoe lang te wachten voordat u readnatpmpresponseorretry () toch. · Als u alle gebruikte middelen vrij, closenatpmp () kan worden called.Sample codeError controleren hSample codeError controle is bewust weggelaten. Controleer alle terugkeer codes in natpmp.h bestand. eenvoudige sampleThis heel simpel monster gewoon vragen om een omleiding en terug te keren wanneer de klus geklaard is. void redirect (uint16_t privateport, uint16_t publicport) {int r; natpmp_t natpmp; natpmpresp_t reactie; initnatpmp (natpmp); sendnewportmappingrequest (natpmp, NATPMP_PROTOCOL_TCP, privateport, publicport, 3600); do {fd_set fds; struct timeval timeout; FD_ZERO (FDS); Fd_set (natpmp.s, FDS); getnatpmprequesttimeout (natpmp timeout); te selecteren (FD_SETSIZE, fds, NULL, NULL, time-out); r = readnatpmpresponseorretry (natpmp, respons); } While (r == NATPMP_TRYAGAIN); printf ( "toegewezen openbare poort% hu tot lokale_poort% hu levenspassie% un", response.newportmapping.mappedpublicport, response.newportmapping.privateport, response.newportmapping.lifetime); closenatpmp (natpmp); } Als opzettelijk weggelaten. Controleer alle terugkeer codes in natpmp.h file.simple sampleThis heel simpel monster gewoon vragen om een omleiding en terug te keren wanneer de klus geklaard is. void redirect (uint16_t privateport, uint16_t publicport) {int r; natpmp_t natpmp; natpmpresp_t reactie; initnatpmp (natpmp); sendnewportmappingrequest (natpmp, NATPMP_PROTOCOL_TCP, privateport, publicport, 3600); do {fd_set fds; struct timeval timeout; FD_ZERO (FDS); Fd_set (natpmp.s, FDS); getnatpmprequesttimeout (natpmp timeout); te selecteren (FD_SETSIZE, fds, NULL, NULL, time-out); r = readnatpmpresponseorretry (natpmp, respons); } While (r == NATPMP_TRYAGAIN); printf ( "toegewezen openbare poort% hu tot lokale_poort% hu levenspassie% un", response.newportmapping.mappedpublicport, response.newportmapping.privateport, response.newportmapping.lifetime); closenatpmp (natpmp); } Meer complexe sampleWe zou de init fase van een P2P-software voorstellen. Tijdens deze fase, de software probeert de publieke IP-adres te krijgen en voeg een poort mapping. Aan het einde van het proces, wordt natpmpstate hetzij Sdone of sError zijn. {Natpmp_t natpmp; natpmpresp_t reactie; enum {SINIT = 0, Ssendpub, Srecvpub, Ssendmap, Srecvmap, Sdone, sError = 1000} natpmpstate = SINIT; int r; if (initnatpmp (natpmp)


libnatpmp Gerelateerde software

Transactie :: eenvoudig

Transactie :: Simpel is een Ruby-bibliotheek die actief biedt ("Live", niet-backend) transactionele ondersteuning aan Marshal-bekwame objecten. ...

143

Downloaden