classRakNet_1_1RakPeer.html 235 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <title>RakNet: RakNet::RakPeer Class Reference</title>
  7. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  8. <script type="text/javascript" src="jquery.js"></script>
  9. <script type="text/javascript" src="dynsections.js"></script>
  10. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  11. </head>
  12. <body>
  13. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  14. <div id="titlearea">
  15. <table cellspacing="0" cellpadding="0">
  16. <tbody>
  17. <tr style="height: 56px;">
  18. <td style="padding-left: 0.5em;">
  19. <div id="projectname">RakNet
  20. &#160;<span id="projectnumber">4.0</span>
  21. </div>
  22. </td>
  23. </tr>
  24. </tbody>
  25. </table>
  26. </div>
  27. <!-- end header part -->
  28. <!-- Generated by Doxygen 1.8.2 -->
  29. <div id="navrow1" class="tabs">
  30. <ul class="tablist">
  31. <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  32. <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
  33. <li><a href="modules.html"><span>Modules</span></a></li>
  34. <li><a href="namespaces.html"><span>Namespaces</span></a></li>
  35. <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
  36. <li><a href="files.html"><span>Files</span></a></li>
  37. </ul>
  38. </div>
  39. <div id="navrow2" class="tabs2">
  40. <ul class="tablist">
  41. <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
  42. <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
  43. <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
  44. <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
  45. </ul>
  46. </div>
  47. <div id="nav-path" class="navpath">
  48. <ul>
  49. <li class="navelem"><a class="el" href="namespaceRakNet.html">RakNet</a></li><li class="navelem"><a class="el" href="classRakNet_1_1RakPeer.html">RakPeer</a></li> </ul>
  50. </div>
  51. </div><!-- top -->
  52. <div class="header">
  53. <div class="summary">
  54. <a href="#pub-methods">Public Member Functions</a> &#124;
  55. <a href="#pro-methods">Protected Member Functions</a> &#124;
  56. <a href="#pro-attribs">Protected Attributes</a> &#124;
  57. <a href="classRakNet_1_1RakPeer-members.html">List of all members</a> </div>
  58. <div class="headertitle">
  59. <div class="title">RakNet::RakPeer Class Reference</div> </div>
  60. </div><!--header-->
  61. <div class="contents">
  62. <p>Main interface for network communications.
  63. <a href="classRakNet_1_1RakPeer.html#details">More...</a></p>
  64. <p><code>#include &lt;RakPeer.h&gt;</code></p>
  65. <div class="dynheader">
  66. Inheritance diagram for RakNet::RakPeer:</div>
  67. <div class="dyncontent">
  68. <div class="center">
  69. <img src="classRakNet_1_1RakPeer.png" usemap="#RakNet::RakPeer_map" alt=""/>
  70. <map id="RakNet::RakPeer_map" name="RakNet::RakPeer_map">
  71. <area href="classRakNet_1_1RakPeerInterface.html" title="The main interface for network communications." alt="RakNet::RakPeerInterface" shape="rect" coords="0,0,156,24"/>
  72. </map>
  73. </div></div>
  74. <table class="memberdecls">
  75. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  76. Public Member Functions</h2></td></tr>
  77. <tr class="memitem:aac8368908e13e92fb7a2e080c7aa01a7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac8368908e13e92fb7a2e080c7aa01a7"></a>
  78. &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#aac8368908e13e92fb7a2e080c7aa01a7">RakPeer</a> ()</td></tr>
  79. <tr class="memdesc:aac8368908e13e92fb7a2e080c7aa01a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br/></td></tr>
  80. <tr class="separator:aac8368908e13e92fb7a2e080c7aa01a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  81. <tr class="memitem:aed5b944fb045c704771af32b314c2f14"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aed5b944fb045c704771af32b314c2f14"></a>
  82. virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#aed5b944fb045c704771af32b314c2f14">~RakPeer</a> ()</td></tr>
  83. <tr class="memdesc:aed5b944fb045c704771af32b314c2f14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br/></td></tr>
  84. <tr class="separator:aed5b944fb045c704771af32b314c2f14"><td class="memSeparator" colspan="2">&#160;</td></tr>
  85. <tr class="memitem:a92d493cb617381a6e750f7df6e768927"><td class="memItemLeft" align="right" valign="top">StartupResult&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a92d493cb617381a6e750f7df6e768927">Startup</a> (unsigned int maxConnections, <a class="el" href="structRakNet_1_1SocketDescriptor.html">SocketDescriptor</a> *socketDescriptors, unsigned socketDescriptorCount, int threadPriority=-99999)</td></tr>
  86. <tr class="memdesc:a92d493cb617381a6e750f7df6e768927"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts the network threads and opens the listen port. <a href="#a92d493cb617381a6e750f7df6e768927"></a><br/></td></tr>
  87. <tr class="separator:a92d493cb617381a6e750f7df6e768927"><td class="memSeparator" colspan="2">&#160;</td></tr>
  88. <tr class="memitem:a5445d0e8db3e7ef1e38b7fc5bc0d3920"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a5445d0e8db3e7ef1e38b7fc5bc0d3920">InitializeSecurity</a> (const char *publicKey, const char *privateKey, bool bRequireClientKey=false)</td></tr>
  89. <tr class="separator:a5445d0e8db3e7ef1e38b7fc5bc0d3920"><td class="memSeparator" colspan="2">&#160;</td></tr>
  90. <tr class="memitem:a489dd712e953836042df5711c8eb7e76"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a489dd712e953836042df5711c8eb7e76">DisableSecurity</a> (void)</td></tr>
  91. <tr class="separator:a489dd712e953836042df5711c8eb7e76"><td class="memSeparator" colspan="2">&#160;</td></tr>
  92. <tr class="memitem:ab927e4b0e70fcc0e06d1ba6a70315eb3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#ab927e4b0e70fcc0e06d1ba6a70315eb3">AddToSecurityExceptionList</a> (const char *ip)</td></tr>
  93. <tr class="memdesc:ab927e4b0e70fcc0e06d1ba6a70315eb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is useful if you have a fixed-address internal server behind a LAN. <a href="#ab927e4b0e70fcc0e06d1ba6a70315eb3"></a><br/></td></tr>
  94. <tr class="separator:ab927e4b0e70fcc0e06d1ba6a70315eb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  95. <tr class="memitem:a931823b7400d31ad641d6f6da1e69b88"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a931823b7400d31ad641d6f6da1e69b88">RemoveFromSecurityExceptionList</a> (const char *ip)</td></tr>
  96. <tr class="memdesc:a931823b7400d31ad641d6f6da1e69b88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a specific connection previously added via AddToSecurityExceptionList. <a href="#a931823b7400d31ad641d6f6da1e69b88"></a><br/></td></tr>
  97. <tr class="separator:a931823b7400d31ad641d6f6da1e69b88"><td class="memSeparator" colspan="2">&#160;</td></tr>
  98. <tr class="memitem:a654c29f6f195b0dcd105a856c99222d1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a654c29f6f195b0dcd105a856c99222d1">IsInSecurityExceptionList</a> (const char *ip)</td></tr>
  99. <tr class="memdesc:a654c29f6f195b0dcd105a856c99222d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks to see if a given IP is in the security exception list. <a href="#a654c29f6f195b0dcd105a856c99222d1"></a><br/></td></tr>
  100. <tr class="separator:a654c29f6f195b0dcd105a856c99222d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  101. <tr class="memitem:a8ed81856dd81ec1cd00e17fafedee0a7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a8ed81856dd81ec1cd00e17fafedee0a7">SetMaximumIncomingConnections</a> (unsigned short numberAllowed)</td></tr>
  102. <tr class="memdesc:a8ed81856dd81ec1cd00e17fafedee0a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the maximum number of incoming connections allowed. <a href="#a8ed81856dd81ec1cd00e17fafedee0a7"></a><br/></td></tr>
  103. <tr class="separator:a8ed81856dd81ec1cd00e17fafedee0a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  104. <tr class="memitem:a21eac8d486bbcb12e350c49c43c92618"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a21eac8d486bbcb12e350c49c43c92618">GetMaximumIncomingConnections</a> (void) const </td></tr>
  105. <tr class="memdesc:a21eac8d486bbcb12e350c49c43c92618"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value passed to <a class="el" href="classRakNet_1_1RakPeer.html#a8ed81856dd81ec1cd00e17fafedee0a7" title="Sets the maximum number of incoming connections allowed.">SetMaximumIncomingConnections()</a>. <a href="#a21eac8d486bbcb12e350c49c43c92618"></a><br/></td></tr>
  106. <tr class="separator:a21eac8d486bbcb12e350c49c43c92618"><td class="memSeparator" colspan="2">&#160;</td></tr>
  107. <tr class="memitem:a4d47b849ba6e7ecf2d1fca3198a60ba5"><td class="memItemLeft" align="right" valign="top">unsigned short&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a4d47b849ba6e7ecf2d1fca3198a60ba5">NumberOfConnections</a> (void) const </td></tr>
  108. <tr class="memdesc:a4d47b849ba6e7ecf2d1fca3198a60ba5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns how many open connections exist at this time. <a href="#a4d47b849ba6e7ecf2d1fca3198a60ba5"></a><br/></td></tr>
  109. <tr class="separator:a4d47b849ba6e7ecf2d1fca3198a60ba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  110. <tr class="memitem:a6d4071bbbf128604c94a27c46fa7b9ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a6d4071bbbf128604c94a27c46fa7b9ce">SetIncomingPassword</a> (const char *passwordData, int passwordDataLength)</td></tr>
  111. <tr class="memdesc:a6d4071bbbf128604c94a27c46fa7b9ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the password for the incoming connections. <a href="#a6d4071bbbf128604c94a27c46fa7b9ce"></a><br/></td></tr>
  112. <tr class="separator:a6d4071bbbf128604c94a27c46fa7b9ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
  113. <tr class="memitem:a395e269dce0de14f22bfb870923f22b3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a395e269dce0de14f22bfb870923f22b3">GetIncomingPassword</a> (char *passwordData, int *passwordDataLength)</td></tr>
  114. <tr class="memdesc:a395e269dce0de14f22bfb870923f22b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the password passed to SetIncomingPassword. <a href="#a395e269dce0de14f22bfb870923f22b3"></a><br/></td></tr>
  115. <tr class="separator:a395e269dce0de14f22bfb870923f22b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  116. <tr class="memitem:a19979ff2acc15abe22785fc55c1c656c"><td class="memItemLeft" align="right" valign="top">ConnectionAttemptResult&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a19979ff2acc15abe22785fc55c1c656c">Connect</a> (const char *host, unsigned short remotePort, const char *passwordData, int passwordDataLength, <a class="el" href="structRakNet_1_1PublicKey.html">PublicKey</a> *publicKey=0, unsigned connectionSocketIndex=0, unsigned sendConnectionAttemptCount=6, unsigned timeBetweenSendConnectionAttemptsMS=1000, RakNet::TimeMS timeoutTime=0)</td></tr>
  117. <tr class="memdesc:a19979ff2acc15abe22785fc55c1c656c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect to the specified host (ip or domain name) and server port. <a href="#a19979ff2acc15abe22785fc55c1c656c"></a><br/></td></tr>
  118. <tr class="separator:a19979ff2acc15abe22785fc55c1c656c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  119. <tr class="memitem:a8852b99f2d8919bee57fd457477292a0"><td class="memItemLeft" align="right" valign="top">virtual ConnectionAttemptResult&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a8852b99f2d8919bee57fd457477292a0">ConnectWithSocket</a> (const char *host, unsigned short remotePort, const char *passwordData, int passwordDataLength, RakNetSocket2 *socket, <a class="el" href="structRakNet_1_1PublicKey.html">PublicKey</a> *publicKey=0, unsigned sendConnectionAttemptCount=6, unsigned timeBetweenSendConnectionAttemptsMS=1000, RakNet::TimeMS timeoutTime=0)</td></tr>
  120. <tr class="memdesc:a8852b99f2d8919bee57fd457477292a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect to the specified host (ip or domain name) and server port. <a href="#a8852b99f2d8919bee57fd457477292a0"></a><br/></td></tr>
  121. <tr class="separator:a8852b99f2d8919bee57fd457477292a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  122. <tr class="memitem:a0a6d4c16c9b489574393a39ab2f99990"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a0a6d4c16c9b489574393a39ab2f99990">Shutdown</a> (unsigned int blockDuration, unsigned char orderingChannel=0, <a class="el" href="PacketPriority_8h.html#a659378374e516180f93640c79f59705c">PacketPriority</a> disconnectionNotificationPriority=<a class="el" href="PacketPriority_8h.html#a659378374e516180f93640c79f59705cadb8ee22a232a2787f32ba28da55c43c1">LOW_PRIORITY</a>)</td></tr>
  123. <tr class="memdesc:a0a6d4c16c9b489574393a39ab2f99990"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stops the network threads and closes all connections. <a href="#a0a6d4c16c9b489574393a39ab2f99990"></a><br/></td></tr>
  124. <tr class="separator:a0a6d4c16c9b489574393a39ab2f99990"><td class="memSeparator" colspan="2">&#160;</td></tr>
  125. <tr class="memitem:ae6bb2c4de0b24283b231154d29304e00"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#ae6bb2c4de0b24283b231154d29304e00">IsActive</a> (void) const </td></tr>
  126. <tr class="memdesc:ae6bb2c4de0b24283b231154d29304e00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the network thread is running. <a href="#ae6bb2c4de0b24283b231154d29304e00"></a><br/></td></tr>
  127. <tr class="separator:ae6bb2c4de0b24283b231154d29304e00"><td class="memSeparator" colspan="2">&#160;</td></tr>
  128. <tr class="memitem:a0af5b69face182410f2abb11da902dd4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a0af5b69face182410f2abb11da902dd4">GetConnectionList</a> (<a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> *remoteSystems, unsigned short *numberOfSystems) const </td></tr>
  129. <tr class="memdesc:a0af5b69face182410f2abb11da902dd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fills the array remoteSystems with the <a class="el" href="structRakNet_1_1SystemAddress.html" title="Network address for a system.">SystemAddress</a> of all the systems we are connected to. <a href="#a0af5b69face182410f2abb11da902dd4"></a><br/></td></tr>
  130. <tr class="separator:a0af5b69face182410f2abb11da902dd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  131. <tr class="memitem:a1d6e283f476bdd4ed8b9b4c56693ecd1"><td class="memItemLeft" align="right" valign="top">virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a1d6e283f476bdd4ed8b9b4c56693ecd1">GetNextSendReceipt</a> (void)</td></tr>
  132. <tr class="separator:a1d6e283f476bdd4ed8b9b4c56693ecd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  133. <tr class="memitem:a9232bd1bc9c1a223ecef8682133f95ac"><td class="memItemLeft" align="right" valign="top">virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a9232bd1bc9c1a223ecef8682133f95ac">IncrementNextSendReceipt</a> (void)</td></tr>
  134. <tr class="separator:a9232bd1bc9c1a223ecef8682133f95ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
  135. <tr class="memitem:a1ee7422f744ab606c92b4ed4b28db40e"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a1ee7422f744ab606c92b4ed4b28db40e">Send</a> (const char *data, const int length, <a class="el" href="PacketPriority_8h.html#a659378374e516180f93640c79f59705c">PacketPriority</a> priority, <a class="el" href="PacketPriority_8h.html#ae41fa01235e99dced384d137fa874a7e">PacketReliability</a> reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber=0)</td></tr>
  136. <tr class="memdesc:a1ee7422f744ab606c92b4ed4b28db40e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a block of data to the specified system that you are connected to. <a href="#a1ee7422f744ab606c92b4ed4b28db40e"></a><br/></td></tr>
  137. <tr class="separator:a1ee7422f744ab606c92b4ed4b28db40e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  138. <tr class="memitem:ac3f1dcedc63156184962aa184ba69ed2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#ac3f1dcedc63156184962aa184ba69ed2">SendLoopback</a> (const char *data, const int length)</td></tr>
  139. <tr class="memdesc:ac3f1dcedc63156184962aa184ba69ed2"><td class="mdescLeft">&#160;</td><td class="mdescRight">"Send" to yourself rather than a remote system. <a href="#ac3f1dcedc63156184962aa184ba69ed2"></a><br/></td></tr>
  140. <tr class="separator:ac3f1dcedc63156184962aa184ba69ed2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  141. <tr class="memitem:ac308204d9c3f5f92ac11b30f1d183d4b"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#ac308204d9c3f5f92ac11b30f1d183d4b">Send</a> (const <a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *bitStream, <a class="el" href="PacketPriority_8h.html#a659378374e516180f93640c79f59705c">PacketPriority</a> priority, <a class="el" href="PacketPriority_8h.html#ae41fa01235e99dced384d137fa874a7e">PacketReliability</a> reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber=0)</td></tr>
  142. <tr class="memdesc:ac308204d9c3f5f92ac11b30f1d183d4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a block of data to the specified system that you are connected to. <a href="#ac308204d9c3f5f92ac11b30f1d183d4b"></a><br/></td></tr>
  143. <tr class="separator:ac308204d9c3f5f92ac11b30f1d183d4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  144. <tr class="memitem:a68a9c6f4db253074f3775d164e39195f"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a68a9c6f4db253074f3775d164e39195f">SendList</a> (const char **data, const int *lengths, const int numParameters, <a class="el" href="PacketPriority_8h.html#a659378374e516180f93640c79f59705c">PacketPriority</a> priority, <a class="el" href="PacketPriority_8h.html#ae41fa01235e99dced384d137fa874a7e">PacketReliability</a> reliability, char orderingChannel, const AddressOrGUID systemIdentifier, bool broadcast, uint32_t forceReceiptNumber=0)</td></tr>
  145. <tr class="memdesc:a68a9c6f4db253074f3775d164e39195f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends multiple blocks of data, concatenating them automatically. <a href="#a68a9c6f4db253074f3775d164e39195f"></a><br/></td></tr>
  146. <tr class="separator:a68a9c6f4db253074f3775d164e39195f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  147. <tr class="memitem:a46d90fb903e747f76d63eb3a96543740"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structRakNet_1_1Packet.html">Packet</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a46d90fb903e747f76d63eb3a96543740">Receive</a> (void)</td></tr>
  148. <tr class="memdesc:a46d90fb903e747f76d63eb3a96543740"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a message from the incoming message queue. <a href="#a46d90fb903e747f76d63eb3a96543740"></a><br/></td></tr>
  149. <tr class="separator:a46d90fb903e747f76d63eb3a96543740"><td class="memSeparator" colspan="2">&#160;</td></tr>
  150. <tr class="memitem:ae3e053f8f77d9b2e7b7fcd03f8f9120e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#ae3e053f8f77d9b2e7b7fcd03f8f9120e">DeallocatePacket</a> (<a class="el" href="structRakNet_1_1Packet.html">Packet</a> *packet)</td></tr>
  151. <tr class="memdesc:ae3e053f8f77d9b2e7b7fcd03f8f9120e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call this to deallocate a message returned by <a class="el" href="classRakNet_1_1RakPeer.html#a46d90fb903e747f76d63eb3a96543740" title="Gets a message from the incoming message queue.">Receive()</a> when you are done handling it. <a href="#ae3e053f8f77d9b2e7b7fcd03f8f9120e"></a><br/></td></tr>
  152. <tr class="separator:ae3e053f8f77d9b2e7b7fcd03f8f9120e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  153. <tr class="memitem:abd1743ff40a69e0362cdb483d88b801b"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#abd1743ff40a69e0362cdb483d88b801b">GetMaximumNumberOfPeers</a> (void) const </td></tr>
  154. <tr class="memdesc:abd1743ff40a69e0362cdb483d88b801b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the total number of connections we are allowed. <a href="#abd1743ff40a69e0362cdb483d88b801b"></a><br/></td></tr>
  155. <tr class="separator:abd1743ff40a69e0362cdb483d88b801b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  156. <tr class="memitem:a95e3806fce8552e322236abcf105cbf9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a95e3806fce8552e322236abcf105cbf9">CloseConnection</a> (const AddressOrGUID target, bool sendDisconnectionNotification, unsigned char orderingChannel=0, <a class="el" href="PacketPriority_8h.html#a659378374e516180f93640c79f59705c">PacketPriority</a> disconnectionNotificationPriority=<a class="el" href="PacketPriority_8h.html#a659378374e516180f93640c79f59705cadb8ee22a232a2787f32ba28da55c43c1">LOW_PRIORITY</a>)</td></tr>
  157. <tr class="memdesc:a95e3806fce8552e322236abcf105cbf9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the connection to another host (if we initiated the connection it will disconnect, if they did it will kick them out). <a href="#a95e3806fce8552e322236abcf105cbf9"></a><br/></td></tr>
  158. <tr class="separator:a95e3806fce8552e322236abcf105cbf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  159. <tr class="memitem:a5f934680b37ffbfdc0047ac406fc2512"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a5f934680b37ffbfdc0047ac406fc2512">CancelConnectionAttempt</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> target)</td></tr>
  160. <tr class="memdesc:a5f934680b37ffbfdc0047ac406fc2512"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancel a pending connection attempt. <a href="#a5f934680b37ffbfdc0047ac406fc2512"></a><br/></td></tr>
  161. <tr class="separator:a5f934680b37ffbfdc0047ac406fc2512"><td class="memSeparator" colspan="2">&#160;</td></tr>
  162. <tr class="memitem:a514c8d6f1dc75b5e9bb3cb5b9dcb632b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceRakNet.html#a84a0fb005391f71130dd341f77f62138">ConnectionState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a514c8d6f1dc75b5e9bb3cb5b9dcb632b">GetConnectionState</a> (const AddressOrGUID systemIdentifier)</td></tr>
  163. <tr class="separator:a514c8d6f1dc75b5e9bb3cb5b9dcb632b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  164. <tr class="memitem:ad77373ffe92c37f01b39bc16c62ac9ba"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#ad77373ffe92c37f01b39bc16c62ac9ba">GetIndexFromSystemAddress</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> systemAddress) const </td></tr>
  165. <tr class="memdesc:ad77373ffe92c37f01b39bc16c62ac9ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given <em>systemAddress</em>, returns its index into remoteSystemList. <a href="#ad77373ffe92c37f01b39bc16c62ac9ba"></a><br/></td></tr>
  166. <tr class="separator:ad77373ffe92c37f01b39bc16c62ac9ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
  167. <tr class="memitem:aa3159d6eabc0a1a4298fb67c7fc7146b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#aa3159d6eabc0a1a4298fb67c7fc7146b">GetSystemAddressFromIndex</a> (unsigned int index)</td></tr>
  168. <tr class="memdesc:aa3159d6eabc0a1a4298fb67c7fc7146b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given <em>index</em> into remoteSystemList, will return a <a class="el" href="structRakNet_1_1SystemAddress.html" title="Network address for a system.">SystemAddress</a>. This function is only useful for looping through all systems. <a href="#aa3159d6eabc0a1a4298fb67c7fc7146b"></a><br/></td></tr>
  169. <tr class="separator:aa3159d6eabc0a1a4298fb67c7fc7146b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  170. <tr class="memitem:ab639b98f7b007833b08930de45545433"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#ab639b98f7b007833b08930de45545433">GetGUIDFromIndex</a> (unsigned int index)</td></tr>
  171. <tr class="memdesc:ab639b98f7b007833b08930de45545433"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as GetSystemAddressFromIndex but returns <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a>. <a href="#ab639b98f7b007833b08930de45545433"></a><br/></td></tr>
  172. <tr class="separator:ab639b98f7b007833b08930de45545433"><td class="memSeparator" colspan="2">&#160;</td></tr>
  173. <tr class="memitem:a791779bb9714e830f19a5f12961576d7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a791779bb9714e830f19a5f12961576d7">GetSystemList</a> (<a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> &gt; &amp;addresses, <a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> &gt; &amp;guids) const </td></tr>
  174. <tr class="memdesc:a791779bb9714e830f19a5f12961576d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as calling GetSystemAddressFromIndex and GetGUIDFromIndex for all systems, but more efficient Indices match each other, so <em>addresses</em>[0] and <em>guids</em>[0] refer to the same system. <a href="#a791779bb9714e830f19a5f12961576d7"></a><br/></td></tr>
  175. <tr class="separator:a791779bb9714e830f19a5f12961576d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  176. <tr class="memitem:ad403c131efe8bfe6f3c5280e110b9b2d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#ad403c131efe8bfe6f3c5280e110b9b2d">AddToBanList</a> (const char *IP, RakNet::TimeMS milliseconds=0)</td></tr>
  177. <tr class="memdesc:ad403c131efe8bfe6f3c5280e110b9b2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bans an IP from connecting. <a href="#ad403c131efe8bfe6f3c5280e110b9b2d"></a><br/></td></tr>
  178. <tr class="separator:ad403c131efe8bfe6f3c5280e110b9b2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  179. <tr class="memitem:a86c426318efc45345df9a348ae822f34"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a86c426318efc45345df9a348ae822f34"></a>
  180. void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a86c426318efc45345df9a348ae822f34">RemoveFromBanList</a> (const char *IP)</td></tr>
  181. <tr class="memdesc:a86c426318efc45345df9a348ae822f34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows a previously banned IP to connect. param[in] Dotted IP address. You can use * as a wildcard. An IP such as 128.0.0.* will ban all IP addresses starting with 128.0.0. <br/></td></tr>
  182. <tr class="separator:a86c426318efc45345df9a348ae822f34"><td class="memSeparator" colspan="2">&#160;</td></tr>
  183. <tr class="memitem:af2a3cfa151c1facf78fd835d8bc620dc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af2a3cfa151c1facf78fd835d8bc620dc"></a>
  184. void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#af2a3cfa151c1facf78fd835d8bc620dc">ClearBanList</a> (void)</td></tr>
  185. <tr class="memdesc:af2a3cfa151c1facf78fd835d8bc620dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows all previously banned IPs to connect. <br/></td></tr>
  186. <tr class="separator:af2a3cfa151c1facf78fd835d8bc620dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  187. <tr class="memitem:a499626110e1409b09e7d955722c4c3fd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a499626110e1409b09e7d955722c4c3fd">IsBanned</a> (const char *IP)</td></tr>
  188. <tr class="memdesc:a499626110e1409b09e7d955722c4c3fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true or false indicating if a particular IP is banned. <a href="#a499626110e1409b09e7d955722c4c3fd"></a><br/></td></tr>
  189. <tr class="separator:a499626110e1409b09e7d955722c4c3fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
  190. <tr class="memitem:ac5e80ab105ac8124d4ee5f94bd1b316a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#ac5e80ab105ac8124d4ee5f94bd1b316a">SetLimitIPConnectionFrequency</a> (bool b)</td></tr>
  191. <tr class="memdesc:ac5e80ab105ac8124d4ee5f94bd1b316a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable or disable allowing frequent connections from the same IP adderss. <a href="#ac5e80ab105ac8124d4ee5f94bd1b316a"></a><br/></td></tr>
  192. <tr class="separator:ac5e80ab105ac8124d4ee5f94bd1b316a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  193. <tr class="memitem:a9bb94828e0ad89e0d6c44a671bf22f8d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a9bb94828e0ad89e0d6c44a671bf22f8d">Ping</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> target)</td></tr>
  194. <tr class="separator:a9bb94828e0ad89e0d6c44a671bf22f8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  195. <tr class="memitem:af7dd13a4c3d38e65bf816a604c6042c7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#af7dd13a4c3d38e65bf816a604c6042c7">Ping</a> (const char *host, unsigned short remotePort, bool onlyReplyOnAcceptingConnections, unsigned connectionSocketIndex=0)</td></tr>
  196. <tr class="memdesc:af7dd13a4c3d38e65bf816a604c6042c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send a ping to the specified unconnected system. <a href="#af7dd13a4c3d38e65bf816a604c6042c7"></a><br/></td></tr>
  197. <tr class="separator:af7dd13a4c3d38e65bf816a604c6042c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  198. <tr class="memitem:a2b735d6075d64dcdf5c554989f4a5f98"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a2b735d6075d64dcdf5c554989f4a5f98">GetAveragePing</a> (const AddressOrGUID systemIdentifier)</td></tr>
  199. <tr class="memdesc:a2b735d6075d64dcdf5c554989f4a5f98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the average of all ping times read for the specific system or -1 if none read yet. <a href="#a2b735d6075d64dcdf5c554989f4a5f98"></a><br/></td></tr>
  200. <tr class="separator:a2b735d6075d64dcdf5c554989f4a5f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
  201. <tr class="memitem:a7a21e884778d65fb4493b29e5c1826c5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a7a21e884778d65fb4493b29e5c1826c5">GetLastPing</a> (const AddressOrGUID systemIdentifier) const </td></tr>
  202. <tr class="memdesc:a7a21e884778d65fb4493b29e5c1826c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the last ping time read for the specific system or -1 if none read yet. <a href="#a7a21e884778d65fb4493b29e5c1826c5"></a><br/></td></tr>
  203. <tr class="separator:a7a21e884778d65fb4493b29e5c1826c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  204. <tr class="memitem:afdb8673a54a5f3926ac93e13a4a20367"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#afdb8673a54a5f3926ac93e13a4a20367">GetLowestPing</a> (const AddressOrGUID systemIdentifier) const </td></tr>
  205. <tr class="memdesc:afdb8673a54a5f3926ac93e13a4a20367"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the lowest ping time read or -1 if none read yet. <a href="#afdb8673a54a5f3926ac93e13a4a20367"></a><br/></td></tr>
  206. <tr class="separator:afdb8673a54a5f3926ac93e13a4a20367"><td class="memSeparator" colspan="2">&#160;</td></tr>
  207. <tr class="memitem:abb8d47e41f9bc523a555d8f1bc774e4a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#abb8d47e41f9bc523a555d8f1bc774e4a">SetOccasionalPing</a> (bool doPing)</td></tr>
  208. <tr class="separator:abb8d47e41f9bc523a555d8f1bc774e4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  209. <tr class="memitem:ac1f87a029e47963ae24838ec87c1a076"><td class="memItemLeft" align="right" valign="top">RakNet::Time&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#ac1f87a029e47963ae24838ec87c1a076">GetClockDifferential</a> (const AddressOrGUID systemIdentifier)</td></tr>
  210. <tr class="separator:ac1f87a029e47963ae24838ec87c1a076"><td class="memSeparator" colspan="2">&#160;</td></tr>
  211. <tr class="memitem:a2a534f1c0bb56b3c5b9b56ca8839917c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a2a534f1c0bb56b3c5b9b56ca8839917c">SetOfflinePingResponse</a> (const char *data, const unsigned int length)</td></tr>
  212. <tr class="memdesc:a2a534f1c0bb56b3c5b9b56ca8839917c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the data to send along with a LAN server discovery or offline ping reply. <a href="#a2a534f1c0bb56b3c5b9b56ca8839917c"></a><br/></td></tr>
  213. <tr class="separator:a2a534f1c0bb56b3c5b9b56ca8839917c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  214. <tr class="memitem:aec33659d51a00eed12bd1dc8a24071b0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#aec33659d51a00eed12bd1dc8a24071b0">GetOfflinePingResponse</a> (char **data, unsigned int *length)</td></tr>
  215. <tr class="memdesc:aec33659d51a00eed12bd1dc8a24071b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns pointers to a copy of the <em>data</em> passed to SetOfflinePingResponse. <a href="#aec33659d51a00eed12bd1dc8a24071b0"></a><br/></td></tr>
  216. <tr class="separator:aec33659d51a00eed12bd1dc8a24071b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  217. <tr class="memitem:acf82a248aa543c9ec04567c14004fea5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#acf82a248aa543c9ec04567c14004fea5">GetInternalID</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> systemAddress=<a class="el" href="namespaceRakNet.html#a80c95b4ed53f42911a6fa92b85e929cf">UNASSIGNED_SYSTEM_ADDRESS</a>, const int index=0) const </td></tr>
  218. <tr class="memdesc:acf82a248aa543c9ec04567c14004fea5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the unique address identifier that represents you or another system on the the network. <a href="#acf82a248aa543c9ec04567c14004fea5"></a><br/></td></tr>
  219. <tr class="separator:acf82a248aa543c9ec04567c14004fea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  220. <tr class="memitem:ad02c3a4e4c4063771fb47fe20d4b47af"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#ad02c3a4e4c4063771fb47fe20d4b47af">SetInternalID</a> (<a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> systemAddress, int index=0)</td></tr>
  221. <tr class="memdesc:ad02c3a4e4c4063771fb47fe20d4b47af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets your internal IP address, for platforms that do not support reading it, or to override a value. <a href="#ad02c3a4e4c4063771fb47fe20d4b47af"></a><br/></td></tr>
  222. <tr class="separator:ad02c3a4e4c4063771fb47fe20d4b47af"><td class="memSeparator" colspan="2">&#160;</td></tr>
  223. <tr class="memitem:a96f0e923c413fe2319d17862605d6622"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a96f0e923c413fe2319d17862605d6622">GetExternalID</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> target) const </td></tr>
  224. <tr class="memdesc:a96f0e923c413fe2319d17862605d6622"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the unique address identifier that represents the target on the the network and is based on the target's external IP / port. <a href="#a96f0e923c413fe2319d17862605d6622"></a><br/></td></tr>
  225. <tr class="separator:a96f0e923c413fe2319d17862605d6622"><td class="memSeparator" colspan="2">&#160;</td></tr>
  226. <tr class="memitem:a3fa1d1f5b3227506bb827e722cfb78fa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3fa1d1f5b3227506bb827e722cfb78fa"></a>
  227. const <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a3fa1d1f5b3227506bb827e722cfb78fa">GetMyGUID</a> (void) const </td></tr>
  228. <tr class="memdesc:a3fa1d1f5b3227506bb827e722cfb78fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return my own GUID. <br/></td></tr>
  229. <tr class="separator:a3fa1d1f5b3227506bb827e722cfb78fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
  230. <tr class="memitem:a1566deab65341e8b665f7643b3a3bcf9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1566deab65341e8b665f7643b3a3bcf9"></a>
  231. <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a1566deab65341e8b665f7643b3a3bcf9">GetMyBoundAddress</a> (const int socketIndex=0)</td></tr>
  232. <tr class="memdesc:a1566deab65341e8b665f7643b3a3bcf9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the address bound to a socket at the specified index. <br/></td></tr>
  233. <tr class="separator:a1566deab65341e8b665f7643b3a3bcf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  234. <tr class="memitem:a41fcd1175cb8fee67b12835944ed51da"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a41fcd1175cb8fee67b12835944ed51da">GetGuidFromSystemAddress</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> input) const </td></tr>
  235. <tr class="memdesc:a41fcd1175cb8fee67b12835944ed51da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given a connected system address, this method gives the unique GUID representing that instance of <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a>. This will be the same on all systems connected to that instance of <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a>, even if the external system addresses are different. Complexity is O(log2(n)). If <em>input</em> is UNASSIGNED_SYSTEM_ADDRESS, will return your own GUID. <a href="#a41fcd1175cb8fee67b12835944ed51da"></a><br/></td></tr>
  236. <tr class="separator:a41fcd1175cb8fee67b12835944ed51da"><td class="memSeparator" colspan="2">&#160;</td></tr>
  237. <tr class="memitem:ac591b0ac4b88b9cdf182fc4769d9de98"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#ac591b0ac4b88b9cdf182fc4769d9de98">GetSystemAddressFromGuid</a> (const <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> input) const </td></tr>
  238. <tr class="memdesc:ac591b0ac4b88b9cdf182fc4769d9de98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gives the system address of a connected system, given its GUID. The GUID will be the same on all systems connected to that instance of <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a>, even if the external system addresses are different. Currently O(log(n)), but this may be improved in the future If <em>input</em> is UNASSIGNED_RAKNET_GUID, UNASSIGNED_SYSTEM_ADDRESS is returned. <a href="#ac591b0ac4b88b9cdf182fc4769d9de98"></a><br/></td></tr>
  239. <tr class="separator:ac591b0ac4b88b9cdf182fc4769d9de98"><td class="memSeparator" colspan="2">&#160;</td></tr>
  240. <tr class="memitem:abc607f77d9724097030d2da6868074b3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#abc607f77d9724097030d2da6868074b3">GetClientPublicKeyFromSystemAddress</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> input, char *client_public_key) const </td></tr>
  241. <tr class="separator:abc607f77d9724097030d2da6868074b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  242. <tr class="memitem:a46305b16342c6f5ec1c1a66623032310"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a46305b16342c6f5ec1c1a66623032310">SetTimeoutTime</a> (RakNet::TimeMS timeMS, const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> target)</td></tr>
  243. <tr class="memdesc:a46305b16342c6f5ec1c1a66623032310"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the time, in MS, to use before considering ourselves disconnected after not being able to deliver a reliable message. <a href="#a46305b16342c6f5ec1c1a66623032310"></a><br/></td></tr>
  244. <tr class="separator:a46305b16342c6f5ec1c1a66623032310"><td class="memSeparator" colspan="2">&#160;</td></tr>
  245. <tr class="memitem:a12dc51372f2a5a109f3c6a55ba799763"><td class="memItemLeft" align="right" valign="top">RakNet::TimeMS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a12dc51372f2a5a109f3c6a55ba799763">GetTimeoutTime</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> target)</td></tr>
  246. <tr class="memdesc:a12dc51372f2a5a109f3c6a55ba799763"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the Timeout time for the given system. <a href="#a12dc51372f2a5a109f3c6a55ba799763"></a><br/></td></tr>
  247. <tr class="separator:a12dc51372f2a5a109f3c6a55ba799763"><td class="memSeparator" colspan="2">&#160;</td></tr>
  248. <tr class="memitem:af5948dcad656f51305ed20c8b38e529b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#af5948dcad656f51305ed20c8b38e529b">GetMTUSize</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> target) const </td></tr>
  249. <tr class="memdesc:af5948dcad656f51305ed20c8b38e529b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current MTU size. <a href="#af5948dcad656f51305ed20c8b38e529b"></a><br/></td></tr>
  250. <tr class="separator:af5948dcad656f51305ed20c8b38e529b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  251. <tr class="memitem:aca51c8583f3995217a940bf592d7140c"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#aca51c8583f3995217a940bf592d7140c">GetNumberOfAddresses</a> (void)</td></tr>
  252. <tr class="memdesc:aca51c8583f3995217a940bf592d7140c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of IP addresses this system has internally. <a href="#aca51c8583f3995217a940bf592d7140c"></a><br/></td></tr>
  253. <tr class="separator:aca51c8583f3995217a940bf592d7140c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  254. <tr class="memitem:aa78c5de86816a54cae137bffb7e49bc5"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#aa78c5de86816a54cae137bffb7e49bc5">GetLocalIP</a> (unsigned int index)</td></tr>
  255. <tr class="separator:aa78c5de86816a54cae137bffb7e49bc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  256. <tr class="memitem:ad89d80f939408a620a5e41eeab0a588a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#ad89d80f939408a620a5e41eeab0a588a">IsLocalIP</a> (const char *ip)</td></tr>
  257. <tr class="separator:ad89d80f939408a620a5e41eeab0a588a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  258. <tr class="memitem:a3b24a4946b34071621b0b288b869f21f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a3b24a4946b34071621b0b288b869f21f">AllowConnectionResponseIPMigration</a> (bool allow)</td></tr>
  259. <tr class="memdesc:a3b24a4946b34071621b0b288b869f21f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow or disallow connection responses from any IP. <a href="#a3b24a4946b34071621b0b288b869f21f"></a><br/></td></tr>
  260. <tr class="separator:a3b24a4946b34071621b0b288b869f21f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  261. <tr class="memitem:aecb0396cdb296a5df8b8266c8cce138d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#aecb0396cdb296a5df8b8266c8cce138d">AdvertiseSystem</a> (const char *host, unsigned short remotePort, const char *data, int dataLength, unsigned connectionSocketIndex=0)</td></tr>
  262. <tr class="memdesc:aecb0396cdb296a5df8b8266c8cce138d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a one byte message ID_ADVERTISE_SYSTEM to the remote unconnected system. This will send our external IP outside the LAN along with some user data to the remote system. <a href="#aecb0396cdb296a5df8b8266c8cce138d"></a><br/></td></tr>
  263. <tr class="separator:aecb0396cdb296a5df8b8266c8cce138d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  264. <tr class="memitem:a35e89d9813d6f6e7f2144a6a0437a33b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a35e89d9813d6f6e7f2144a6a0437a33b">SetSplitMessageProgressInterval</a> (int interval)</td></tr>
  265. <tr class="memdesc:a35e89d9813d6f6e7f2144a6a0437a33b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls how often to return ID_DOWNLOAD_PROGRESS for large message downloads. <a href="#a35e89d9813d6f6e7f2144a6a0437a33b"></a><br/></td></tr>
  266. <tr class="separator:a35e89d9813d6f6e7f2144a6a0437a33b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  267. <tr class="memitem:af9f01256eab673794028fe48980ef6fa"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#af9f01256eab673794028fe48980ef6fa">GetSplitMessageProgressInterval</a> (void) const </td></tr>
  268. <tr class="memdesc:af9f01256eab673794028fe48980ef6fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns what was passed to <a class="el" href="classRakNet_1_1RakPeer.html#a35e89d9813d6f6e7f2144a6a0437a33b" title="Controls how often to return ID_DOWNLOAD_PROGRESS for large message downloads.">SetSplitMessageProgressInterval()</a>. <a href="#af9f01256eab673794028fe48980ef6fa"></a><br/></td></tr>
  269. <tr class="separator:af9f01256eab673794028fe48980ef6fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
  270. <tr class="memitem:a739faf1ea8c90aded5e11bfc105b956e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a739faf1ea8c90aded5e11bfc105b956e">SetUnreliableTimeout</a> (RakNet::TimeMS timeoutMS)</td></tr>
  271. <tr class="memdesc:a739faf1ea8c90aded5e11bfc105b956e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set how long to wait before giving up on sending an unreliable message. Useful if the network is clogged up. Set to 0 or less to never timeout. Defaults to 0. <a href="#a739faf1ea8c90aded5e11bfc105b956e"></a><br/></td></tr>
  272. <tr class="separator:a739faf1ea8c90aded5e11bfc105b956e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  273. <tr class="memitem:a86b8b2a8d2e4edc2c1d89f6bde8b9f28"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a86b8b2a8d2e4edc2c1d89f6bde8b9f28">SendTTL</a> (const char *host, unsigned short remotePort, int ttl, unsigned connectionSocketIndex=0)</td></tr>
  274. <tr class="memdesc:a86b8b2a8d2e4edc2c1d89f6bde8b9f28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send a message to a host, with the IP socket option TTL set to 3. <a href="#a86b8b2a8d2e4edc2c1d89f6bde8b9f28"></a><br/></td></tr>
  275. <tr class="separator:a86b8b2a8d2e4edc2c1d89f6bde8b9f28"><td class="memSeparator" colspan="2">&#160;</td></tr>
  276. <tr class="memitem:a4ceacd63ae51089a2e36287c54f07ffe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a4ceacd63ae51089a2e36287c54f07ffe">AttachPlugin</a> (<a class="el" href="classRakNet_1_1PluginInterface2.html">PluginInterface2</a> *plugin)</td></tr>
  277. <tr class="memdesc:a4ceacd63ae51089a2e36287c54f07ffe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches a Plugin interface to an instance of the base class (<a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> or PacketizedTCP) to run code automatically on message receipt in the Receive call. If the plugin returns false from PluginInterface::UsesReliabilityLayer(), which is the case for all plugins except <a class="el" href="classRakNet_1_1PacketLogger.html" title="Writes incoming and outgoing messages to the screen. This will write all incoming and outgoing messag...">PacketLogger</a>, you can call <a class="el" href="classRakNet_1_1RakPeer.html#a4ceacd63ae51089a2e36287c54f07ffe" title="Attaches a Plugin interface to an instance of the base class (RakPeer or PacketizedTCP) to run code a...">AttachPlugin()</a> and <a class="el" href="classRakNet_1_1RakPeer.html#a9f29151642a0ad0abdddc6d9a8f25239" title="Detaches a Plugin interface from the instance of the base class (RakPeer or PacketizedTCP) it is atta...">DetachPlugin()</a> for this plugin while <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> is active. <a href="#a4ceacd63ae51089a2e36287c54f07ffe"></a><br/></td></tr>
  278. <tr class="separator:a4ceacd63ae51089a2e36287c54f07ffe"><td class="memSeparator" colspan="2">&#160;</td></tr>
  279. <tr class="memitem:a9f29151642a0ad0abdddc6d9a8f25239"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a9f29151642a0ad0abdddc6d9a8f25239">DetachPlugin</a> (<a class="el" href="classRakNet_1_1PluginInterface2.html">PluginInterface2</a> *messageHandler)</td></tr>
  280. <tr class="memdesc:a9f29151642a0ad0abdddc6d9a8f25239"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detaches a Plugin interface from the instance of the base class (<a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> or PacketizedTCP) it is attached to. <a href="#a9f29151642a0ad0abdddc6d9a8f25239"></a><br/></td></tr>
  281. <tr class="separator:a9f29151642a0ad0abdddc6d9a8f25239"><td class="memSeparator" colspan="2">&#160;</td></tr>
  282. <tr class="memitem:ac32f687f4bbd396e326be77ac1fa77a8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#ac32f687f4bbd396e326be77ac1fa77a8">PushBackPacket</a> (<a class="el" href="structRakNet_1_1Packet.html">Packet</a> *packet, bool pushAtHead)</td></tr>
  283. <tr class="memdesc:ac32f687f4bbd396e326be77ac1fa77a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Puts a message back in the receive queue in case you don't want to deal with it immediately. <a href="#ac32f687f4bbd396e326be77ac1fa77a8"></a><br/></td></tr>
  284. <tr class="separator:ac32f687f4bbd396e326be77ac1fa77a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  285. <tr class="memitem:a5be8b42a06fdd32f29f032ba5fc5e7b0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structRakNet_1_1Packet.html">Packet</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a5be8b42a06fdd32f29f032ba5fc5e7b0">AllocatePacket</a> (unsigned dataSize)</td></tr>
  286. <tr class="memdesc:a5be8b42a06fdd32f29f032ba5fc5e7b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a packet for you to write to if you want to create a <a class="el" href="structRakNet_1_1Packet.html" title="This represents a user message from another system.">Packet</a> for some reason. You can add it to the receive buffer with PushBackPacket. <a href="#a5be8b42a06fdd32f29f032ba5fc5e7b0"></a><br/></td></tr>
  287. <tr class="separator:a5be8b42a06fdd32f29f032ba5fc5e7b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  288. <tr class="memitem:ab69ef5d63339d36dc99b905586a23151"><td class="memItemLeft" align="right" valign="top">virtual RakNetSocket2 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#ab69ef5d63339d36dc99b905586a23151">GetSocket</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> target)</td></tr>
  289. <tr class="memdesc:ab69ef5d63339d36dc99b905586a23151"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the socket used with a particular active connection. The smart pointer reference counts the RakNetSocket object, so the socket will remain active as long as the smart pointer does, even if <a class="el" href="namespaceRakNet.html" title="Simple class to send changes between directories. In essence, a simple autopatcher that can be used f...">RakNet</a> were to shutdown or close the connection. <a href="#ab69ef5d63339d36dc99b905586a23151"></a><br/></td></tr>
  290. <tr class="separator:ab69ef5d63339d36dc99b905586a23151"><td class="memSeparator" colspan="2">&#160;</td></tr>
  291. <tr class="memitem:a35c353846b88cb39d4c8d12ba4f5ca42"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a35c353846b88cb39d4c8d12ba4f5ca42">GetSockets</a> (<a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; RakNetSocket2 * &gt; &amp;sockets)</td></tr>
  292. <tr class="memdesc:a35c353846b88cb39d4c8d12ba4f5ca42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets all sockets in use. <a href="#a35c353846b88cb39d4c8d12ba4f5ca42"></a><br/></td></tr>
  293. <tr class="separator:a35c353846b88cb39d4c8d12ba4f5ca42"><td class="memSeparator" colspan="2">&#160;</td></tr>
  294. <tr class="memitem:a21f59d33d16332dd8dd96d800c33d06e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a21f59d33d16332dd8dd96d800c33d06e">SetUserUpdateThread</a> (void(*_userUpdateThreadPtr)(<a class="el" href="classRakNet_1_1RakPeerInterface.html">RakPeerInterface</a> *, void *), void *_userUpdateThreadData)</td></tr>
  295. <tr class="separator:a21f59d33d16332dd8dd96d800c33d06e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  296. <tr class="memitem:a959a1dc3d239d3c5114bc781144d3b73"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a959a1dc3d239d3c5114bc781144d3b73">SetIncomingDatagramEventHandler</a> (bool(*_incomingDatagramEventHandler)(RNS2RecvStruct *))</td></tr>
  297. <tr class="separator:a959a1dc3d239d3c5114bc781144d3b73"><td class="memSeparator" colspan="2">&#160;</td></tr>
  298. <tr class="memitem:a38a4348d90eb454b4d470d45fb19b99e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a38a4348d90eb454b4d470d45fb19b99e">ApplyNetworkSimulator</a> (float packetloss, unsigned short minExtraPing, unsigned short extraPingVariance)</td></tr>
  299. <tr class="separator:a38a4348d90eb454b4d470d45fb19b99e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  300. <tr class="memitem:a9c67c61c6eebed7a4ed8bc2ea2813b56"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a9c67c61c6eebed7a4ed8bc2ea2813b56">SetPerConnectionOutgoingBandwidthLimit</a> (unsigned maxBitsPerSecond)</td></tr>
  301. <tr class="separator:a9c67c61c6eebed7a4ed8bc2ea2813b56"><td class="memSeparator" colspan="2">&#160;</td></tr>
  302. <tr class="memitem:adc9c2b58a0970b6a80e50b1ecf470e43"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#adc9c2b58a0970b6a80e50b1ecf470e43">IsNetworkSimulatorActive</a> (void)</td></tr>
  303. <tr class="separator:adc9c2b58a0970b6a80e50b1ecf470e43"><td class="memSeparator" colspan="2">&#160;</td></tr>
  304. <tr class="memitem:a0d31a8a91862a6c796730dc3a35f98ee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structRakNet_1_1RakNetStatistics.html">RakNetStatistics</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a0d31a8a91862a6c796730dc3a35f98ee">GetStatistics</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> systemAddress, <a class="el" href="structRakNet_1_1RakNetStatistics.html">RakNetStatistics</a> *rns=0)</td></tr>
  305. <tr class="memdesc:a0d31a8a91862a6c796730dc3a35f98ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a structure containing a large set of network statistics for the specified system. You can map this data to a string using the C style <a class="el" href="namespaceRakNet.html#a49d0ff9db0d324a890e9c08add72a131">StatisticsToString()</a> function. <a href="#a0d31a8a91862a6c796730dc3a35f98ee"></a><br/></td></tr>
  306. <tr class="separator:a0d31a8a91862a6c796730dc3a35f98ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
  307. <tr class="memitem:a399f918602df7cb051b038e17ad67ecf"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a399f918602df7cb051b038e17ad67ecf">GetStatistics</a> (const unsigned int index, <a class="el" href="structRakNet_1_1RakNetStatistics.html">RakNetStatistics</a> *rns)</td></tr>
  308. <tr class="memdesc:a399f918602df7cb051b038e17ad67ecf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the network statistics of the system at the given index in the remoteSystemList. <a href="#a399f918602df7cb051b038e17ad67ecf"></a><br/></td></tr>
  309. <tr class="separator:a399f918602df7cb051b038e17ad67ecf"><td class="memSeparator" colspan="2">&#160;</td></tr>
  310. <tr class="memitem:acffede0c021450b37b16e6946c694a7d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#acffede0c021450b37b16e6946c694a7d">GetStatisticsList</a> (<a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> &gt; &amp;addresses, <a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> &gt; &amp;guids, <a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="structRakNet_1_1RakNetStatistics.html">RakNetStatistics</a> &gt; &amp;statistics)</td></tr>
  311. <tr class="memdesc:acffede0c021450b37b16e6946c694a7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the list of systems, and statistics for each of those systems Each system has one entry in each of the lists, in the same order. <a href="#acffede0c021450b37b16e6946c694a7d"></a><br/></td></tr>
  312. <tr class="separator:acffede0c021450b37b16e6946c694a7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  313. <tr class="memitem:adf51ef909abde91448a0a5d17e1da65c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf51ef909abde91448a0a5d17e1da65c"></a>
  314. virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#adf51ef909abde91448a0a5d17e1da65c">GetReceiveBufferSize</a> (void)</td></tr>
  315. <tr class="memdesc:adf51ef909abde91448a0a5d17e1da65c"><td class="mdescLeft">&#160;</td><td class="mdescRight">how many messages are waiting when you call <a class="el" href="classRakNet_1_1RakPeer.html#a46d90fb903e747f76d63eb3a96543740" title="Gets a message from the incoming message queue.">Receive()</a> <br/></td></tr>
  316. <tr class="separator:adf51ef909abde91448a0a5d17e1da65c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  317. <tr class="inherit_header pub_methods_classRakNet_1_1RakPeerInterface"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classRakNet_1_1RakPeerInterface')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classRakNet_1_1RakPeerInterface.html">RakNet::RakPeerInterface</a></td></tr>
  318. <tr class="memitem:a154354ae29d11ac06ef34bd64a8dd6aa inherit pub_methods_classRakNet_1_1RakPeerInterface"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a154354ae29d11ac06ef34bd64a8dd6aa"></a>
  319. virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeerInterface.html#a154354ae29d11ac06ef34bd64a8dd6aa">~RakPeerInterface</a> ()</td></tr>
  320. <tr class="memdesc:a154354ae29d11ac06ef34bd64a8dd6aa inherit pub_methods_classRakNet_1_1RakPeerInterface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br/></td></tr>
  321. <tr class="separator:a154354ae29d11ac06ef34bd64a8dd6aa inherit pub_methods_classRakNet_1_1RakPeerInterface"><td class="memSeparator" colspan="2">&#160;</td></tr>
  322. </table><table class="memberdecls">
  323. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
  324. Protected Member Functions</h2></td></tr>
  325. <tr class="memitem:a380285f3ca2ce6bc081fc8fcb4541cc9"><td class="memItemLeft" align="right" valign="top">RemoteSystemStruct *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a380285f3ca2ce6bc081fc8fcb4541cc9">GetRemoteSystemFromSystemAddress</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> systemAddress, bool calledFromNetworkThread, bool onlyActive) const </td></tr>
  326. <tr class="separator:a380285f3ca2ce6bc081fc8fcb4541cc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  327. <tr class="memitem:ae483d3f2306ada5fc2d79bde1663130d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae483d3f2306ada5fc2d79bde1663130d"></a>
  328. void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#ae483d3f2306ada5fc2d79bde1663130d">ParseConnectionRequestPacket</a> (RakPeer::RemoteSystemStruct *remoteSystem, const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> &amp;systemAddress, const char *data, int byteSize)</td></tr>
  329. <tr class="memdesc:ae483d3f2306ada5fc2d79bde1663130d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse out a connection request packet. <br/></td></tr>
  330. <tr class="separator:ae483d3f2306ada5fc2d79bde1663130d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  331. <tr class="memitem:abff708e05373259e91ec0a863fbaf375"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abff708e05373259e91ec0a863fbaf375"></a>
  332. void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#abff708e05373259e91ec0a863fbaf375">NotifyAndFlagForShutdown</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> systemAddress, bool performImmediate, unsigned char orderingChannel, <a class="el" href="PacketPriority_8h.html#a659378374e516180f93640c79f59705c">PacketPriority</a> disconnectionNotificationPriority)</td></tr>
  333. <tr class="memdesc:abff708e05373259e91ec0a863fbaf375"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send a reliable disconnect packet to this player and disconnect them when it is delivered. <br/></td></tr>
  334. <tr class="separator:abff708e05373259e91ec0a863fbaf375"><td class="memSeparator" colspan="2">&#160;</td></tr>
  335. <tr class="memitem:acea8348eddf6e6b24f6e438b3c5f881d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acea8348eddf6e6b24f6e438b3c5f881d"></a>
  336. unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#acea8348eddf6e6b24f6e438b3c5f881d">GetNumberOfRemoteInitiatedConnections</a> (void) const </td></tr>
  337. <tr class="memdesc:acea8348eddf6e6b24f6e438b3c5f881d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns how many remote systems initiated a connection to us. <br/></td></tr>
  338. <tr class="separator:acea8348eddf6e6b24f6e438b3c5f881d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  339. <tr class="memitem:a2da01b7948820f3527590e3fc09869da"><td class="memItemLeft" align="right" valign="top">RemoteSystemStruct *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a2da01b7948820f3527590e3fc09869da">AssignSystemAddressToRemoteSystemList</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> systemAddress, RemoteSystemStruct::ConnectMode connectionMode, RakNetSocket2 *incomingRakNetSocket, bool *thisIPConnectedRecently, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> bindingAddress, int incomingMTU, <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> guid, bool useSecurity)</td></tr>
  340. <tr class="memdesc:a2da01b7948820f3527590e3fc09869da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a free remote system from the list and assign our systemAddress to it. <a href="#a2da01b7948820f3527590e3fc09869da"></a><br/></td></tr>
  341. <tr class="separator:a2da01b7948820f3527590e3fc09869da"><td class="memSeparator" colspan="2">&#160;</td></tr>
  342. <tr class="memitem:a9251492e6d3d0538111c1d90be554b2d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a9251492e6d3d0538111c1d90be554b2d">ShiftIncomingTimestamp</a> (unsigned char *data, const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> &amp;systemAddress) const </td></tr>
  343. <tr class="memdesc:a9251492e6d3d0538111c1d90be554b2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adjust the timestamp of the incoming packet to be relative to this system. <a href="#a9251492e6d3d0538111c1d90be554b2d"></a><br/></td></tr>
  344. <tr class="separator:a9251492e6d3d0538111c1d90be554b2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  345. <tr class="memitem:a1e23c8101ff1db0f6d6429afb7b1e711"><td class="memItemLeft" align="right" valign="top">RakNet::Time&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a1e23c8101ff1db0f6d6429afb7b1e711">GetBestClockDifferential</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> systemAddress) const </td></tr>
  346. <tr class="separator:a1e23c8101ff1db0f6d6429afb7b1e711"><td class="memSeparator" colspan="2">&#160;</td></tr>
  347. </table><table class="memberdecls">
  348. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
  349. Protected Attributes</h2></td></tr>
  350. <tr class="memitem:af64c716502f8489c8b674cde838e9d97"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af64c716502f8489c8b674cde838e9d97"></a>
  351. volatile bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#af64c716502f8489c8b674cde838e9d97">endThreads</a></td></tr>
  352. <tr class="memdesc:af64c716502f8489c8b674cde838e9d97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set this to true to terminate the Peer thread execution. <br/></td></tr>
  353. <tr class="separator:af64c716502f8489c8b674cde838e9d97"><td class="memSeparator" colspan="2">&#160;</td></tr>
  354. <tr class="memitem:af2f5e5755c03755c06eb7f1276f90f19"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af2f5e5755c03755c06eb7f1276f90f19"></a>
  355. volatile bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#af2f5e5755c03755c06eb7f1276f90f19">isMainLoopThreadActive</a></td></tr>
  356. <tr class="memdesc:af2f5e5755c03755c06eb7f1276f90f19"><td class="mdescLeft">&#160;</td><td class="mdescRight">true if the peer thread is active. <br/></td></tr>
  357. <tr class="separator:af2f5e5755c03755c06eb7f1276f90f19"><td class="memSeparator" colspan="2">&#160;</td></tr>
  358. <tr class="memitem:a9faf5bd4ea7dca603f967b6ee1ed40d9"><td class="memItemLeft" align="right" valign="top">*unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a9faf5bd4ea7dca603f967b6ee1ed40d9">maximumNumberOfPeers</a></td></tr>
  359. <tr class="memdesc:a9faf5bd4ea7dca603f967b6ee1ed40d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store the maximum number of peers allowed to connect. <a href="#a9faf5bd4ea7dca603f967b6ee1ed40d9"></a><br/></td></tr>
  360. <tr class="separator:a9faf5bd4ea7dca603f967b6ee1ed40d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  361. <tr class="memitem:a6244b23254ae6e95302b5060b3f1bc0e"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a6244b23254ae6e95302b5060b3f1bc0e">maximumIncomingConnections</a></td></tr>
  362. <tr class="memdesc:a6244b23254ae6e95302b5060b3f1bc0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store the maximum number of peers able to connect, including reserved connection slots for pings, etc. <a href="#a6244b23254ae6e95302b5060b3f1bc0e"></a><br/></td></tr>
  363. <tr class="separator:a6244b23254ae6e95302b5060b3f1bc0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  364. <tr class="memitem:a79fac920e5b3388a3e1eb9ef5ebea60f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a79fac920e5b3388a3e1eb9ef5ebea60f"></a>
  365. char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a79fac920e5b3388a3e1eb9ef5ebea60f">incomingPassword</a> [256]</td></tr>
  366. <tr class="memdesc:a79fac920e5b3388a3e1eb9ef5ebea60f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Local Player ID. <br/></td></tr>
  367. <tr class="separator:a79fac920e5b3388a3e1eb9ef5ebea60f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  368. <tr class="memitem:a433a287f35dd77985ae4ac579e6adf76"><td class="memItemLeft" align="right" valign="top">RemoteSystemStruct *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a433a287f35dd77985ae4ac579e6adf76">remoteSystemList</a></td></tr>
  369. <tr class="separator:a433a287f35dd77985ae4ac579e6adf76"><td class="memSeparator" colspan="2">&#160;</td></tr>
  370. <tr class="memitem:ad8cab96454717bfcbc2cfda6f88d8cc0"><td class="memItemLeft" align="right" valign="top">RemoteSystemStruct **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#ad8cab96454717bfcbc2cfda6f88d8cc0">activeSystemList</a></td></tr>
  371. <tr class="separator:ad8cab96454717bfcbc2cfda6f88d8cc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  372. <tr class="memitem:af4ed36c02a71245b4159ddee3be909a1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af4ed36c02a71245b4159ddee3be909a1"></a>
  373. bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#af4ed36c02a71245b4159ddee3be909a1">updateCycleIsRunning</a></td></tr>
  374. <tr class="memdesc:af4ed36c02a71245b4159ddee3be909a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">RunUpdateCycle is not thread safe but we don't need to mutex calls. Just skip calls if it is running already. <br/></td></tr>
  375. <tr class="separator:af4ed36c02a71245b4159ddee3be909a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  376. <tr class="memitem:a031ec9044cab71ff6f0ecc3b60e21b76"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a031ec9044cab71ff6f0ecc3b60e21b76">bytesSentPerSecond</a></td></tr>
  377. <tr class="memdesc:a031ec9044cab71ff6f0ecc3b60e21b76"><td class="mdescLeft">&#160;</td><td class="mdescRight">The list of people we have tried to connect to recently. <a href="#a031ec9044cab71ff6f0ecc3b60e21b76"></a><br/></td></tr>
  378. <tr class="separator:a031ec9044cab71ff6f0ecc3b60e21b76"><td class="memSeparator" colspan="2">&#160;</td></tr>
  379. <tr class="memitem:a9d820f9f09600401b3689a599242832a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#a9d820f9f09600401b3689a599242832a">allowConnectionResponseIPMigration</a></td></tr>
  380. <tr class="memdesc:a9d820f9f09600401b3689a599242832a"><td class="mdescLeft">&#160;</td><td class="mdescRight">How long it has been since things were updated by a call to receiveUpdate thread uses this to determine how long to sleep for. <a href="#a9d820f9f09600401b3689a599242832a"></a><br/></td></tr>
  381. <tr class="separator:a9d820f9f09600401b3689a599242832a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  382. <tr class="memitem:aa4972e4a0c0573671148f33ca2c9ebd6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classRakNet_1_1SimpleMutex.html">SimpleMutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeer.html#aa4972e4a0c0573671148f33ca2c9ebd6">sendReceiptSerialMutex</a></td></tr>
  383. <tr class="separator:aa4972e4a0c0573671148f33ca2c9ebd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  384. </table><table class="memberdecls">
  385. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
  386. Additional Inherited Members</h2></td></tr>
  387. <tr class="inherit_header pub_static_methods_classRakNet_1_1RakPeerInterface"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classRakNet_1_1RakPeerInterface')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classRakNet_1_1RakPeerInterface.html">RakNet::RakPeerInterface</a></td></tr>
  388. <tr class="memitem:a8e05f80c6e0de8f1b6e644700b7ce543 inherit pub_static_methods_classRakNet_1_1RakPeerInterface"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8e05f80c6e0de8f1b6e644700b7ce543"></a>
  389. static uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1RakPeerInterface.html#a8e05f80c6e0de8f1b6e644700b7ce543">Get64BitUniqueRandomNumber</a> (void)</td></tr>
  390. <tr class="memdesc:a8e05f80c6e0de8f1b6e644700b7ce543 inherit pub_static_methods_classRakNet_1_1RakPeerInterface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a random number (to generate a GUID) <br/></td></tr>
  391. <tr class="separator:a8e05f80c6e0de8f1b6e644700b7ce543 inherit pub_static_methods_classRakNet_1_1RakPeerInterface"><td class="memSeparator" colspan="2">&#160;</td></tr>
  392. </table>
  393. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  394. <div class="textblock"><p>Main interface for network communications. </p>
  395. <p>It implements most of <a class="el" href="namespaceRakNet.html" title="Simple class to send changes between directories. In essence, a simple autopatcher that can be used f...">RakNet</a>'s functionality and is the primary interface for <a class="el" href="namespaceRakNet.html" title="Simple class to send changes between directories. In essence, a simple autopatcher that can be used f...">RakNet</a>.</p>
  396. <p>Inherits <a class="el" href="classRakNet_1_1RakPeerInterface.html" title="The main interface for network communications.">RakPeerInterface</a>.</p>
  397. <p>See the individual functions for what the class can do. </p>
  398. </div><h2 class="groupheader">Member Function Documentation</h2>
  399. <a class="anchor" id="ad403c131efe8bfe6f3c5280e110b9b2d"></a>
  400. <div class="memitem">
  401. <div class="memproto">
  402. <table class="mlabels">
  403. <tr>
  404. <td class="mlabels-left">
  405. <table class="memname">
  406. <tr>
  407. <td class="memname">void RakNet::RakPeer::AddToBanList </td>
  408. <td>(</td>
  409. <td class="paramtype">const char *&#160;</td>
  410. <td class="paramname"><em>IP</em>, </td>
  411. </tr>
  412. <tr>
  413. <td class="paramkey"></td>
  414. <td></td>
  415. <td class="paramtype">RakNet::TimeMS&#160;</td>
  416. <td class="paramname"><em>milliseconds</em> = <code>0</code>&#160;</td>
  417. </tr>
  418. <tr>
  419. <td></td>
  420. <td>)</td>
  421. <td></td><td></td>
  422. </tr>
  423. </table>
  424. </td>
  425. <td class="mlabels-right">
  426. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  427. </tr>
  428. </table>
  429. </div><div class="memdoc">
  430. <p>Bans an IP from connecting. </p>
  431. <p>Banned IPs persist between connections but are not saved on shutdown nor loaded on startup. </p>
  432. <dl class="params"><dt>Parameters</dt><dd>
  433. <table class="params">
  434. <tr><td class="paramdir">[in]</td><td class="paramname">IP</td><td>Dotted IP address. You can use * for a wildcard address, such as 128.0.0. * will ban all IP addresses starting with 128.0.0. </td></tr>
  435. <tr><td class="paramdir">[in]</td><td class="paramname">milliseconds</td><td>Gives time in milli seconds for a temporary ban of the IP address. Use 0 for a permanent ban. </td></tr>
  436. </table>
  437. </dd>
  438. </dl>
  439. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#ab44199db81cf4fa834d42efc5eb5ae77">RakNet::RakPeerInterface</a>.</p>
  440. </div>
  441. </div>
  442. <a class="anchor" id="ab927e4b0e70fcc0e06d1ba6a70315eb3"></a>
  443. <div class="memitem">
  444. <div class="memproto">
  445. <table class="mlabels">
  446. <tr>
  447. <td class="mlabels-left">
  448. <table class="memname">
  449. <tr>
  450. <td class="memname">void RakNet::RakPeer::AddToSecurityExceptionList </td>
  451. <td>(</td>
  452. <td class="paramtype">const char *&#160;</td>
  453. <td class="paramname"><em>ip</em></td><td>)</td>
  454. <td></td>
  455. </tr>
  456. </table>
  457. </td>
  458. <td class="mlabels-right">
  459. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  460. </tr>
  461. </table>
  462. </div><div class="memdoc">
  463. <p>This is useful if you have a fixed-address internal server behind a LAN. </p>
  464. <p>Secure connections are determined by the recipient of an incoming connection. This has no effect if called on the system attempting to connect. </p>
  465. <dl class="section note"><dt>Note</dt><dd>If secure connections are on, do not use secure connections for a specific IP address. </dd></dl>
  466. <dl class="params"><dt>Parameters</dt><dd>
  467. <table class="params">
  468. <tr><td class="paramdir">[in]</td><td class="paramname">ip</td><td>IP address to add. * wildcards are supported. </td></tr>
  469. </table>
  470. </dd>
  471. </dl>
  472. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a5ba3e8713e5d7b150ed393eced79675d">RakNet::RakPeerInterface</a>.</p>
  473. </div>
  474. </div>
  475. <a class="anchor" id="aecb0396cdb296a5df8b8266c8cce138d"></a>
  476. <div class="memitem">
  477. <div class="memproto">
  478. <table class="mlabels">
  479. <tr>
  480. <td class="mlabels-left">
  481. <table class="memname">
  482. <tr>
  483. <td class="memname">bool RakNet::RakPeer::AdvertiseSystem </td>
  484. <td>(</td>
  485. <td class="paramtype">const char *&#160;</td>
  486. <td class="paramname"><em>host</em>, </td>
  487. </tr>
  488. <tr>
  489. <td class="paramkey"></td>
  490. <td></td>
  491. <td class="paramtype">unsigned short&#160;</td>
  492. <td class="paramname"><em>remotePort</em>, </td>
  493. </tr>
  494. <tr>
  495. <td class="paramkey"></td>
  496. <td></td>
  497. <td class="paramtype">const char *&#160;</td>
  498. <td class="paramname"><em>data</em>, </td>
  499. </tr>
  500. <tr>
  501. <td class="paramkey"></td>
  502. <td></td>
  503. <td class="paramtype">int&#160;</td>
  504. <td class="paramname"><em>dataLength</em>, </td>
  505. </tr>
  506. <tr>
  507. <td class="paramkey"></td>
  508. <td></td>
  509. <td class="paramtype">unsigned&#160;</td>
  510. <td class="paramname"><em>connectionSocketIndex</em> = <code>0</code>&#160;</td>
  511. </tr>
  512. <tr>
  513. <td></td>
  514. <td>)</td>
  515. <td></td><td></td>
  516. </tr>
  517. </table>
  518. </td>
  519. <td class="mlabels-right">
  520. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  521. </tr>
  522. </table>
  523. </div><div class="memdoc">
  524. <p>Sends a one byte message ID_ADVERTISE_SYSTEM to the remote unconnected system. This will send our external IP outside the LAN along with some user data to the remote system. </p>
  525. <dl class="section pre"><dt>Precondition</dt><dd>The sender and recipient must already be started via a successful call to Initialize </dd></dl>
  526. <dl class="params"><dt>Parameters</dt><dd>
  527. <table class="params">
  528. <tr><td class="paramdir">[in]</td><td class="paramname">host</td><td>Either a dotted IP address or a domain name </td></tr>
  529. <tr><td class="paramdir">[in]</td><td class="paramname">remotePort</td><td>Which port to connect to on the remote machine. </td></tr>
  530. <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Optional data to append to the packet. </td></tr>
  531. <tr><td class="paramdir">[in]</td><td class="paramname">dataLength</td><td>Length of data in bytes. Use 0 if no data. </td></tr>
  532. <tr><td class="paramdir">[in]</td><td class="paramname">connectionSocketIndex</td><td>Index into the array of socket descriptors passed to socketDescriptors in <a class="el" href="classRakNet_1_1RakPeer.html#a92d493cb617381a6e750f7df6e768927" title="Starts the network threads and opens the listen port.">RakPeer::Startup()</a> to send on. </td></tr>
  533. </table>
  534. </dd>
  535. </dl>
  536. <dl class="section return"><dt>Returns</dt><dd>False if <a class="el" href="classRakNet_1_1RakPeer.html#ae6bb2c4de0b24283b231154d29304e00" title="Returns true if the network thread is running.">IsActive()</a>==false or the host is unresolvable. True otherwise. </dd></dl>
  537. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#adccf6f091e1ac19ad92099d50fe649d7">RakNet::RakPeerInterface</a>.</p>
  538. </div>
  539. </div>
  540. <a class="anchor" id="a5be8b42a06fdd32f29f032ba5fc5e7b0"></a>
  541. <div class="memitem">
  542. <div class="memproto">
  543. <table class="mlabels">
  544. <tr>
  545. <td class="mlabels-left">
  546. <table class="memname">
  547. <tr>
  548. <td class="memname"><a class="el" href="structRakNet_1_1Packet.html">Packet</a>* RakNet::RakPeer::AllocatePacket </td>
  549. <td>(</td>
  550. <td class="paramtype">unsigned&#160;</td>
  551. <td class="paramname"><em>dataSize</em></td><td>)</td>
  552. <td></td>
  553. </tr>
  554. </table>
  555. </td>
  556. <td class="mlabels-right">
  557. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  558. </tr>
  559. </table>
  560. </div><div class="memdoc">
  561. <p>Returns a packet for you to write to if you want to create a <a class="el" href="structRakNet_1_1Packet.html" title="This represents a user message from another system.">Packet</a> for some reason. You can add it to the receive buffer with PushBackPacket. </p>
  562. <dl class="params"><dt>Parameters</dt><dd>
  563. <table class="params">
  564. <tr><td class="paramdir">[in]</td><td class="paramname">dataSize</td><td>How many bytes to allocate for the buffer </td></tr>
  565. </table>
  566. </dd>
  567. </dl>
  568. <dl class="section return"><dt>Returns</dt><dd>A packet. </dd></dl>
  569. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a3e38bdd227138f640a942102813ce779">RakNet::RakPeerInterface</a>.</p>
  570. </div>
  571. </div>
  572. <a class="anchor" id="a3b24a4946b34071621b0b288b869f21f"></a>
  573. <div class="memitem">
  574. <div class="memproto">
  575. <table class="mlabels">
  576. <tr>
  577. <td class="mlabels-left">
  578. <table class="memname">
  579. <tr>
  580. <td class="memname">void RakNet::RakPeer::AllowConnectionResponseIPMigration </td>
  581. <td>(</td>
  582. <td class="paramtype">bool&#160;</td>
  583. <td class="paramname"><em>allow</em></td><td>)</td>
  584. <td></td>
  585. </tr>
  586. </table>
  587. </td>
  588. <td class="mlabels-right">
  589. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  590. </tr>
  591. </table>
  592. </div><div class="memdoc">
  593. <p>Allow or disallow connection responses from any IP. </p>
  594. <p>Normally this should be false, but may be necessary when connecting to servers with multiple IP addresses. </p>
  595. <dl class="params"><dt>Parameters</dt><dd>
  596. <table class="params">
  597. <tr><td class="paramdir">[in]</td><td class="paramname">allow</td><td>- True to allow this behavior, false to not allow. Defaults to false. Value persists between connections. </td></tr>
  598. </table>
  599. </dd>
  600. </dl>
  601. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#aa4a2525f004aaf073e1b25b0ffe0c0d2">RakNet::RakPeerInterface</a>.</p>
  602. </div>
  603. </div>
  604. <a class="anchor" id="a38a4348d90eb454b4d470d45fb19b99e"></a>
  605. <div class="memitem">
  606. <div class="memproto">
  607. <table class="mlabels">
  608. <tr>
  609. <td class="mlabels-left">
  610. <table class="memname">
  611. <tr>
  612. <td class="memname">virtual void RakNet::RakPeer::ApplyNetworkSimulator </td>
  613. <td>(</td>
  614. <td class="paramtype">float&#160;</td>
  615. <td class="paramname"><em>packetloss</em>, </td>
  616. </tr>
  617. <tr>
  618. <td class="paramkey"></td>
  619. <td></td>
  620. <td class="paramtype">unsigned short&#160;</td>
  621. <td class="paramname"><em>minExtraPing</em>, </td>
  622. </tr>
  623. <tr>
  624. <td class="paramkey"></td>
  625. <td></td>
  626. <td class="paramtype">unsigned short&#160;</td>
  627. <td class="paramname"><em>extraPingVariance</em>&#160;</td>
  628. </tr>
  629. <tr>
  630. <td></td>
  631. <td>)</td>
  632. <td></td><td></td>
  633. </tr>
  634. </table>
  635. </td>
  636. <td class="mlabels-right">
  637. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  638. </tr>
  639. </table>
  640. </div><div class="memdoc">
  641. <p>Adds simulated ping and packet loss to the outgoing data flow. To simulate bi-directional ping and packet loss, you should call this on both the sender and the recipient, with half the total ping and packetloss value on each. You can exclude network simulator code with the _RELEASE #define to decrease code size </p>
  642. <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>Use <a href="http://www.jenkinssoftware.com/forum/index.php?topic=1671.0">http://www.jenkinssoftware.com/forum/index.php?topic=1671.0</a> instead. </dd></dl>
  643. <dl class="section note"><dt>Note</dt><dd>Doesn't work past version 3.6201 </dd></dl>
  644. <dl class="params"><dt>Parameters</dt><dd>
  645. <table class="params">
  646. <tr><td class="paramdir">[in]</td><td class="paramname">packetloss</td><td>Chance to lose a packet. Ranges from 0 to 1. </td></tr>
  647. <tr><td class="paramdir">[in]</td><td class="paramname">minExtraPing</td><td>The minimum time to delay sends. </td></tr>
  648. <tr><td class="paramdir">[in]</td><td class="paramname">extraPingVariance</td><td>The additional random time to delay sends. </td></tr>
  649. </table>
  650. </dd>
  651. </dl>
  652. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a03910361629f5cbabe0df0612a1f2709">RakNet::RakPeerInterface</a>.</p>
  653. </div>
  654. </div>
  655. <a class="anchor" id="a2da01b7948820f3527590e3fc09869da"></a>
  656. <div class="memitem">
  657. <div class="memproto">
  658. <table class="mlabels">
  659. <tr>
  660. <td class="mlabels-left">
  661. <table class="memname">
  662. <tr>
  663. <td class="memname">RemoteSystemStruct* RakNet::RakPeer::AssignSystemAddressToRemoteSystemList </td>
  664. <td>(</td>
  665. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td>
  666. <td class="paramname"><em>systemAddress</em>, </td>
  667. </tr>
  668. <tr>
  669. <td class="paramkey"></td>
  670. <td></td>
  671. <td class="paramtype">RemoteSystemStruct::ConnectMode&#160;</td>
  672. <td class="paramname"><em>connectionMode</em>, </td>
  673. </tr>
  674. <tr>
  675. <td class="paramkey"></td>
  676. <td></td>
  677. <td class="paramtype">RakNetSocket2 *&#160;</td>
  678. <td class="paramname"><em>incomingRakNetSocket</em>, </td>
  679. </tr>
  680. <tr>
  681. <td class="paramkey"></td>
  682. <td></td>
  683. <td class="paramtype">bool *&#160;</td>
  684. <td class="paramname"><em>thisIPConnectedRecently</em>, </td>
  685. </tr>
  686. <tr>
  687. <td class="paramkey"></td>
  688. <td></td>
  689. <td class="paramtype"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td>
  690. <td class="paramname"><em>bindingAddress</em>, </td>
  691. </tr>
  692. <tr>
  693. <td class="paramkey"></td>
  694. <td></td>
  695. <td class="paramtype">int&#160;</td>
  696. <td class="paramname"><em>incomingMTU</em>, </td>
  697. </tr>
  698. <tr>
  699. <td class="paramkey"></td>
  700. <td></td>
  701. <td class="paramtype"><a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a>&#160;</td>
  702. <td class="paramname"><em>guid</em>, </td>
  703. </tr>
  704. <tr>
  705. <td class="paramkey"></td>
  706. <td></td>
  707. <td class="paramtype">bool&#160;</td>
  708. <td class="paramname"><em>useSecurity</em>&#160;</td>
  709. </tr>
  710. <tr>
  711. <td></td>
  712. <td>)</td>
  713. <td></td><td></td>
  714. </tr>
  715. </table>
  716. </td>
  717. <td class="mlabels-right">
  718. <span class="mlabels"><span class="mlabel">protected</span></span> </td>
  719. </tr>
  720. </table>
  721. </div><div class="memdoc">
  722. <p>Get a free remote system from the list and assign our systemAddress to it. </p>
  723. <dl class="section note"><dt>Note</dt><dd>Should only be called from the update thread - not the user thread. </dd></dl>
  724. <dl class="params"><dt>Parameters</dt><dd>
  725. <table class="params">
  726. <tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>systemAddress to be assigned </td></tr>
  727. <tr><td class="paramdir">[in]</td><td class="paramname">connectionMode</td><td>connection mode of the RemoteSystem. </td></tr>
  728. <tr><td class="paramdir">[in]</td><td class="paramname">rakNetSocket</td><td></td></tr>
  729. <tr><td class="paramdir">[in]</td><td class="paramname">thisIPConnectedRecently</td><td>Is this IP connected recently? set to False; </td></tr>
  730. <tr><td class="paramdir">[in]</td><td class="paramname">bindingAddress</td><td>Address to be binded with the remote system </td></tr>
  731. <tr><td class="paramdir">[in]</td><td class="paramname">incomingMTU</td><td>MTU for the remote system </td></tr>
  732. </table>
  733. </dd>
  734. </dl>
  735. </div>
  736. </div>
  737. <a class="anchor" id="a4ceacd63ae51089a2e36287c54f07ffe"></a>
  738. <div class="memitem">
  739. <div class="memproto">
  740. <table class="mlabels">
  741. <tr>
  742. <td class="mlabels-left">
  743. <table class="memname">
  744. <tr>
  745. <td class="memname">void RakNet::RakPeer::AttachPlugin </td>
  746. <td>(</td>
  747. <td class="paramtype"><a class="el" href="classRakNet_1_1PluginInterface2.html">PluginInterface2</a> *&#160;</td>
  748. <td class="paramname"><em>plugin</em></td><td>)</td>
  749. <td></td>
  750. </tr>
  751. </table>
  752. </td>
  753. <td class="mlabels-right">
  754. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  755. </tr>
  756. </table>
  757. </div><div class="memdoc">
  758. <p>Attaches a Plugin interface to an instance of the base class (<a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> or PacketizedTCP) to run code automatically on message receipt in the Receive call. If the plugin returns false from PluginInterface::UsesReliabilityLayer(), which is the case for all plugins except <a class="el" href="classRakNet_1_1PacketLogger.html" title="Writes incoming and outgoing messages to the screen. This will write all incoming and outgoing messag...">PacketLogger</a>, you can call <a class="el" href="classRakNet_1_1RakPeer.html#a4ceacd63ae51089a2e36287c54f07ffe" title="Attaches a Plugin interface to an instance of the base class (RakPeer or PacketizedTCP) to run code a...">AttachPlugin()</a> and <a class="el" href="classRakNet_1_1RakPeer.html#a9f29151642a0ad0abdddc6d9a8f25239" title="Detaches a Plugin interface from the instance of the base class (RakPeer or PacketizedTCP) it is atta...">DetachPlugin()</a> for this plugin while <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> is active. </p>
  759. <dl class="params"><dt>Parameters</dt><dd>
  760. <table class="params">
  761. <tr><td class="paramdir">[in]</td><td class="paramname">messageHandler</td><td>Pointer to the plugin to attach. </td></tr>
  762. </table>
  763. </dd>
  764. </dl>
  765. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a2cfd224842b6f1d5e2881901c9f71531">RakNet::RakPeerInterface</a>.</p>
  766. </div>
  767. </div>
  768. <a class="anchor" id="a5f934680b37ffbfdc0047ac406fc2512"></a>
  769. <div class="memitem">
  770. <div class="memproto">
  771. <table class="mlabels">
  772. <tr>
  773. <td class="mlabels-left">
  774. <table class="memname">
  775. <tr>
  776. <td class="memname">void RakNet::RakPeer::CancelConnectionAttempt </td>
  777. <td>(</td>
  778. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td>
  779. <td class="paramname"><em>target</em></td><td>)</td>
  780. <td></td>
  781. </tr>
  782. </table>
  783. </td>
  784. <td class="mlabels-right">
  785. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  786. </tr>
  787. </table>
  788. </div><div class="memdoc">
  789. <p>Cancel a pending connection attempt. </p>
  790. <p>If we are already connected, the connection stays open </p>
  791. <dl class="params"><dt>Parameters</dt><dd>
  792. <table class="params">
  793. <tr><td class="paramdir">[in]</td><td class="paramname">target</td><td>Target system to cancel. </td></tr>
  794. </table>
  795. </dd>
  796. </dl>
  797. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#ad70d63c4093c1351f4a0c2949eac312a">RakNet::RakPeerInterface</a>.</p>
  798. </div>
  799. </div>
  800. <a class="anchor" id="a95e3806fce8552e322236abcf105cbf9"></a>
  801. <div class="memitem">
  802. <div class="memproto">
  803. <table class="mlabels">
  804. <tr>
  805. <td class="mlabels-left">
  806. <table class="memname">
  807. <tr>
  808. <td class="memname">void RakNet::RakPeer::CloseConnection </td>
  809. <td>(</td>
  810. <td class="paramtype">const AddressOrGUID&#160;</td>
  811. <td class="paramname"><em>target</em>, </td>
  812. </tr>
  813. <tr>
  814. <td class="paramkey"></td>
  815. <td></td>
  816. <td class="paramtype">bool&#160;</td>
  817. <td class="paramname"><em>sendDisconnectionNotification</em>, </td>
  818. </tr>
  819. <tr>
  820. <td class="paramkey"></td>
  821. <td></td>
  822. <td class="paramtype">unsigned char&#160;</td>
  823. <td class="paramname"><em>orderingChannel</em> = <code>0</code>, </td>
  824. </tr>
  825. <tr>
  826. <td class="paramkey"></td>
  827. <td></td>
  828. <td class="paramtype"><a class="el" href="PacketPriority_8h.html#a659378374e516180f93640c79f59705c">PacketPriority</a>&#160;</td>
  829. <td class="paramname"><em>disconnectionNotificationPriority</em> = <code><a class="el" href="PacketPriority_8h.html#a659378374e516180f93640c79f59705cadb8ee22a232a2787f32ba28da55c43c1">LOW_PRIORITY</a></code>&#160;</td>
  830. </tr>
  831. <tr>
  832. <td></td>
  833. <td>)</td>
  834. <td></td><td></td>
  835. </tr>
  836. </table>
  837. </td>
  838. <td class="mlabels-right">
  839. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  840. </tr>
  841. </table>
  842. </div><div class="memdoc">
  843. <p>Close the connection to another host (if we initiated the connection it will disconnect, if they did it will kick them out). </p>
  844. <p>This method closes the connection irrespective of who initiated the connection. </p>
  845. <dl class="params"><dt>Parameters</dt><dd>
  846. <table class="params">
  847. <tr><td class="paramdir">[in]</td><td class="paramname">target</td><td>Which system to close the connection to. </td></tr>
  848. <tr><td class="paramdir">[in]</td><td class="paramname">sendDisconnectionNotification</td><td>True to send ID_DISCONNECTION_NOTIFICATION to the recipient. False to close it silently. </td></tr>
  849. <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>Which ordering channel to send the disconnection notification on, if any </td></tr>
  850. <tr><td class="paramdir">[in]</td><td class="paramname">disconnectionNotificationPriority</td><td>Priority to send ID_DISCONNECTION_NOTIFICATION on. </td></tr>
  851. </table>
  852. </dd>
  853. </dl>
  854. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#afd637c6f44cb84ce5c151c700bb5cafe">RakNet::RakPeerInterface</a>.</p>
  855. </div>
  856. </div>
  857. <a class="anchor" id="a19979ff2acc15abe22785fc55c1c656c"></a>
  858. <div class="memitem">
  859. <div class="memproto">
  860. <table class="mlabels">
  861. <tr>
  862. <td class="mlabels-left">
  863. <table class="memname">
  864. <tr>
  865. <td class="memname">ConnectionAttemptResult RakNet::RakPeer::Connect </td>
  866. <td>(</td>
  867. <td class="paramtype">const char *&#160;</td>
  868. <td class="paramname"><em>host</em>, </td>
  869. </tr>
  870. <tr>
  871. <td class="paramkey"></td>
  872. <td></td>
  873. <td class="paramtype">unsigned short&#160;</td>
  874. <td class="paramname"><em>remotePort</em>, </td>
  875. </tr>
  876. <tr>
  877. <td class="paramkey"></td>
  878. <td></td>
  879. <td class="paramtype">const char *&#160;</td>
  880. <td class="paramname"><em>passwordData</em>, </td>
  881. </tr>
  882. <tr>
  883. <td class="paramkey"></td>
  884. <td></td>
  885. <td class="paramtype">int&#160;</td>
  886. <td class="paramname"><em>passwordDataLength</em>, </td>
  887. </tr>
  888. <tr>
  889. <td class="paramkey"></td>
  890. <td></td>
  891. <td class="paramtype"><a class="el" href="structRakNet_1_1PublicKey.html">PublicKey</a> *&#160;</td>
  892. <td class="paramname"><em>publicKey</em> = <code>0</code>, </td>
  893. </tr>
  894. <tr>
  895. <td class="paramkey"></td>
  896. <td></td>
  897. <td class="paramtype">unsigned&#160;</td>
  898. <td class="paramname"><em>connectionSocketIndex</em> = <code>0</code>, </td>
  899. </tr>
  900. <tr>
  901. <td class="paramkey"></td>
  902. <td></td>
  903. <td class="paramtype">unsigned&#160;</td>
  904. <td class="paramname"><em>sendConnectionAttemptCount</em> = <code>6</code>, </td>
  905. </tr>
  906. <tr>
  907. <td class="paramkey"></td>
  908. <td></td>
  909. <td class="paramtype">unsigned&#160;</td>
  910. <td class="paramname"><em>timeBetweenSendConnectionAttemptsMS</em> = <code>1000</code>, </td>
  911. </tr>
  912. <tr>
  913. <td class="paramkey"></td>
  914. <td></td>
  915. <td class="paramtype">RakNet::TimeMS&#160;</td>
  916. <td class="paramname"><em>timeoutTime</em> = <code>0</code>&#160;</td>
  917. </tr>
  918. <tr>
  919. <td></td>
  920. <td>)</td>
  921. <td></td><td></td>
  922. </tr>
  923. </table>
  924. </td>
  925. <td class="mlabels-right">
  926. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  927. </tr>
  928. </table>
  929. </div><div class="memdoc">
  930. <p>Connect to the specified host (ip or domain name) and server port. </p>
  931. <p>Calling Connect and not calling SetMaximumIncomingConnections acts as a dedicated client. Calling both acts as a true peer.</p>
  932. <p>This is a non-blocking connection.</p>
  933. <p>The connection is successful when <a class="el" href="classRakNet_1_1RakPeer.html#a514c8d6f1dc75b5e9bb3cb5b9dcb632b">GetConnectionState()</a> returns IS_CONNECTED or <a class="el" href="classRakNet_1_1RakPeer.html#a46d90fb903e747f76d63eb3a96543740" title="Gets a message from the incoming message queue.">Receive()</a> gets a message with the type identifier ID_CONNECTION_REQUEST_ACCEPTED. If the connection is not successful, such as a rejected connection or no response then neither of these things will happen. </p>
  934. <dl class="section pre"><dt>Precondition</dt><dd>Requires that you first call <a class="el" href="classRakNet_1_1RakPeer.html#a92d493cb617381a6e750f7df6e768927" title="Starts the network threads and opens the listen port.">Startup()</a>. </dd></dl>
  935. <dl class="params"><dt>Parameters</dt><dd>
  936. <table class="params">
  937. <tr><td class="paramdir">[in]</td><td class="paramname">host</td><td>Either a dotted IP address or a domain name. </td></tr>
  938. <tr><td class="paramdir">[in]</td><td class="paramname">remotePort</td><td>Port to connect to on the remote machine. </td></tr>
  939. <tr><td class="paramdir">[in]</td><td class="paramname">passwordData</td><td>A data block that must match the data block on the server passed to <a class="el" href="classRakNet_1_1RakPeer.html#a6d4071bbbf128604c94a27c46fa7b9ce" title="Sets the password for the incoming connections.">SetIncomingPassword()</a>. This can be a string or can be a stream of data. Use 0 for no password. </td></tr>
  940. <tr><td class="paramdir">[in]</td><td class="paramname">passwordDataLength</td><td>The length in bytes of passwordData. </td></tr>
  941. <tr><td class="paramdir">[in]</td><td class="paramname">publicKey</td><td>The public key the server is using. If 0, the server is not using security. If non-zero, the publicKeyMode member determines how to connect </td></tr>
  942. <tr><td class="paramdir">[in]</td><td class="paramname">connectionSocketIndex</td><td>Index into the array of socket descriptors passed to socketDescriptors in <a class="el" href="classRakNet_1_1RakPeer.html#a92d493cb617381a6e750f7df6e768927" title="Starts the network threads and opens the listen port.">RakPeer::Startup()</a> to determine the one to send on. </td></tr>
  943. <tr><td class="paramdir">[in]</td><td class="paramname">sendConnectionAttemptCount</td><td>Number of datagrams to send to the other system to try to connect. </td></tr>
  944. <tr><td class="paramdir">[in]</td><td class="paramname">timeBetweenSendConnectionAttemptsMS</td><td>Time to elapse before a datagram is sent to the other system to try to connect. After sendConnectionAttemptCount number of attempts, ID_CONNECTION_ATTEMPT_FAILED is returned. Under low bandwidth conditions with multiple simultaneous outgoing connections, this value should be raised to 1000 or higher, or else the MTU detection can overrun the available bandwidth. </td></tr>
  945. <tr><td class="paramdir">[in]</td><td class="paramname">timeoutTime</td><td>Time to elapse before dropping the connection if a reliable message could not be sent. 0 to use the default value from SetTimeoutTime(UNASSIGNED_SYSTEM_ADDRESS); </td></tr>
  946. </table>
  947. </dd>
  948. </dl>
  949. <dl class="section return"><dt>Returns</dt><dd>CONNECTION_ATTEMPT_STARTED on successful initiation. Otherwise, an appropriate enumeration indicating failure. </dd></dl>
  950. <dl class="section note"><dt>Note</dt><dd>CONNECTION_ATTEMPT_STARTED does not mean you are already connected! </dd>
  951. <dd>
  952. It is possible to immediately get back ID_CONNECTION_ATTEMPT_FAILED if you exceed the maxConnections parameter passed to <a class="el" href="classRakNet_1_1RakPeer.html#a92d493cb617381a6e750f7df6e768927" title="Starts the network threads and opens the listen port.">Startup()</a>. This could happen if you call <a class="el" href="classRakNet_1_1RakPeer.html#a95e3806fce8552e322236abcf105cbf9" title="Close the connection to another host (if we initiated the connection it will disconnect, if they did it will kick them out).">CloseConnection()</a> with sendDisconnectionNotificaiton true, then immediately call <a class="el" href="classRakNet_1_1RakPeer.html#a19979ff2acc15abe22785fc55c1c656c" title="Connect to the specified host (ip or domain name) and server port.">Connect()</a> before the connection has closed. </dd></dl>
  953. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a451dd5d225277fe5806d3d700551fb76">RakNet::RakPeerInterface</a>.</p>
  954. </div>
  955. </div>
  956. <a class="anchor" id="a8852b99f2d8919bee57fd457477292a0"></a>
  957. <div class="memitem">
  958. <div class="memproto">
  959. <table class="mlabels">
  960. <tr>
  961. <td class="mlabels-left">
  962. <table class="memname">
  963. <tr>
  964. <td class="memname">virtual ConnectionAttemptResult RakNet::RakPeer::ConnectWithSocket </td>
  965. <td>(</td>
  966. <td class="paramtype">const char *&#160;</td>
  967. <td class="paramname"><em>host</em>, </td>
  968. </tr>
  969. <tr>
  970. <td class="paramkey"></td>
  971. <td></td>
  972. <td class="paramtype">unsigned short&#160;</td>
  973. <td class="paramname"><em>remotePort</em>, </td>
  974. </tr>
  975. <tr>
  976. <td class="paramkey"></td>
  977. <td></td>
  978. <td class="paramtype">const char *&#160;</td>
  979. <td class="paramname"><em>passwordData</em>, </td>
  980. </tr>
  981. <tr>
  982. <td class="paramkey"></td>
  983. <td></td>
  984. <td class="paramtype">int&#160;</td>
  985. <td class="paramname"><em>passwordDataLength</em>, </td>
  986. </tr>
  987. <tr>
  988. <td class="paramkey"></td>
  989. <td></td>
  990. <td class="paramtype">RakNetSocket2 *&#160;</td>
  991. <td class="paramname"><em>socket</em>, </td>
  992. </tr>
  993. <tr>
  994. <td class="paramkey"></td>
  995. <td></td>
  996. <td class="paramtype"><a class="el" href="structRakNet_1_1PublicKey.html">PublicKey</a> *&#160;</td>
  997. <td class="paramname"><em>publicKey</em> = <code>0</code>, </td>
  998. </tr>
  999. <tr>
  1000. <td class="paramkey"></td>
  1001. <td></td>
  1002. <td class="paramtype">unsigned&#160;</td>
  1003. <td class="paramname"><em>sendConnectionAttemptCount</em> = <code>6</code>, </td>
  1004. </tr>
  1005. <tr>
  1006. <td class="paramkey"></td>
  1007. <td></td>
  1008. <td class="paramtype">unsigned&#160;</td>
  1009. <td class="paramname"><em>timeBetweenSendConnectionAttemptsMS</em> = <code>1000</code>, </td>
  1010. </tr>
  1011. <tr>
  1012. <td class="paramkey"></td>
  1013. <td></td>
  1014. <td class="paramtype">RakNet::TimeMS&#160;</td>
  1015. <td class="paramname"><em>timeoutTime</em> = <code>0</code>&#160;</td>
  1016. </tr>
  1017. <tr>
  1018. <td></td>
  1019. <td>)</td>
  1020. <td></td><td></td>
  1021. </tr>
  1022. </table>
  1023. </td>
  1024. <td class="mlabels-right">
  1025. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1026. </tr>
  1027. </table>
  1028. </div><div class="memdoc">
  1029. <p>Connect to the specified host (ip or domain name) and server port. </p>
  1030. <dl class="params"><dt>Parameters</dt><dd>
  1031. <table class="params">
  1032. <tr><td class="paramdir">[in]</td><td class="paramname">host</td><td>Either a dotted IP address or a domain name. </td></tr>
  1033. <tr><td class="paramdir">[in]</td><td class="paramname">remotePort</td><td>Which port to connect to on the remote machine. </td></tr>
  1034. <tr><td class="paramdir">[in]</td><td class="paramname">passwordData</td><td>A data block that must match the data block on the server passed to <a class="el" href="classRakNet_1_1RakPeer.html#a6d4071bbbf128604c94a27c46fa7b9ce" title="Sets the password for the incoming connections.">SetIncomingPassword()</a>. This can be a string or can be a stream of data. Use 0 for no password. </td></tr>
  1035. <tr><td class="paramdir">[in]</td><td class="paramname">passwordDataLength</td><td>The length in bytes of passwordData. </td></tr>
  1036. <tr><td class="paramdir">[in]</td><td class="paramname">socket</td><td>A bound socket returned by another instance of <a class="el" href="classRakNet_1_1RakPeerInterface.html" title="The main interface for network communications.">RakPeerInterface</a>. </td></tr>
  1037. <tr><td class="paramdir">[in]</td><td class="paramname">sendConnectionAttemptCount</td><td>Number of datagrams to send to the other system to try to connect. </td></tr>
  1038. <tr><td class="paramdir">[in]</td><td class="paramname">timeBetweenSendConnectionAttemptsMS</td><td>Time to elapse before a datagram is sent to the other system to try to connect. After sendConnectionAttemptCount number of attempts, ID_CONNECTION_ATTEMPT_FAILED is returned.. Under low bandwidth conditions with multiple simultaneous outgoing connections, this value should be raised to 1000 or higher, or else the MTU detection can overrun the available bandwidth. </td></tr>
  1039. <tr><td class="paramdir">[in]</td><td class="paramname">timeoutTime</td><td>Time to elapse before dropping the connection if a reliable message could not be sent. 0 to use the default from SetTimeoutTime(UNASSIGNED_SYSTEM_ADDRESS); </td></tr>
  1040. </table>
  1041. </dd>
  1042. </dl>
  1043. <dl class="section return"><dt>Returns</dt><dd>CONNECTION_ATTEMPT_STARTED on successful initiation. Otherwise, an appropriate enumeration indicating failure. </dd></dl>
  1044. <dl class="section note"><dt>Note</dt><dd>CONNECTION_ATTEMPT_STARTED does not mean you are already connected! </dd></dl>
  1045. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a818333f4aa6365dc1db5b1e3c4c31f64">RakNet::RakPeerInterface</a>.</p>
  1046. </div>
  1047. </div>
  1048. <a class="anchor" id="ae3e053f8f77d9b2e7b7fcd03f8f9120e"></a>
  1049. <div class="memitem">
  1050. <div class="memproto">
  1051. <table class="mlabels">
  1052. <tr>
  1053. <td class="mlabels-left">
  1054. <table class="memname">
  1055. <tr>
  1056. <td class="memname">void RakNet::RakPeer::DeallocatePacket </td>
  1057. <td>(</td>
  1058. <td class="paramtype"><a class="el" href="structRakNet_1_1Packet.html">Packet</a> *&#160;</td>
  1059. <td class="paramname"><em>packet</em></td><td>)</td>
  1060. <td></td>
  1061. </tr>
  1062. </table>
  1063. </td>
  1064. <td class="mlabels-right">
  1065. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1066. </tr>
  1067. </table>
  1068. </div><div class="memdoc">
  1069. <p>Call this to deallocate a message returned by <a class="el" href="classRakNet_1_1RakPeer.html#a46d90fb903e747f76d63eb3a96543740" title="Gets a message from the incoming message queue.">Receive()</a> when you are done handling it. </p>
  1070. <dl class="params"><dt>Parameters</dt><dd>
  1071. <table class="params">
  1072. <tr><td class="paramdir">[in]</td><td class="paramname">packet</td><td>Message to deallocate. </td></tr>
  1073. </table>
  1074. </dd>
  1075. </dl>
  1076. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a21b929aba61ce69aab32871db33d6ede">RakNet::RakPeerInterface</a>.</p>
  1077. </div>
  1078. </div>
  1079. <a class="anchor" id="a9f29151642a0ad0abdddc6d9a8f25239"></a>
  1080. <div class="memitem">
  1081. <div class="memproto">
  1082. <table class="mlabels">
  1083. <tr>
  1084. <td class="mlabels-left">
  1085. <table class="memname">
  1086. <tr>
  1087. <td class="memname">void RakNet::RakPeer::DetachPlugin </td>
  1088. <td>(</td>
  1089. <td class="paramtype"><a class="el" href="classRakNet_1_1PluginInterface2.html">PluginInterface2</a> *&#160;</td>
  1090. <td class="paramname"><em>messageHandler</em></td><td>)</td>
  1091. <td></td>
  1092. </tr>
  1093. </table>
  1094. </td>
  1095. <td class="mlabels-right">
  1096. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1097. </tr>
  1098. </table>
  1099. </div><div class="memdoc">
  1100. <p>Detaches a Plugin interface from the instance of the base class (<a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> or PacketizedTCP) it is attached to. </p>
  1101. <p>This method disables the plugin code from running automatically on base class's updates or message receipt. If the plugin returns false from PluginInterface::UsesReliabilityLayer(), which is the case for all plugins except <a class="el" href="classRakNet_1_1PacketLogger.html" title="Writes incoming and outgoing messages to the screen. This will write all incoming and outgoing messag...">PacketLogger</a>, you can call <a class="el" href="classRakNet_1_1RakPeer.html#a4ceacd63ae51089a2e36287c54f07ffe" title="Attaches a Plugin interface to an instance of the base class (RakPeer or PacketizedTCP) to run code a...">AttachPlugin()</a> and <a class="el" href="classRakNet_1_1RakPeer.html#a9f29151642a0ad0abdddc6d9a8f25239" title="Detaches a Plugin interface from the instance of the base class (RakPeer or PacketizedTCP) it is atta...">DetachPlugin()</a> for this plugin while <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> is active. </p>
  1102. <dl class="params"><dt>Parameters</dt><dd>
  1103. <table class="params">
  1104. <tr><td class="paramdir">[in]</td><td class="paramname">messageHandler</td><td>Pointer to a plugin to detach. </td></tr>
  1105. </table>
  1106. </dd>
  1107. </dl>
  1108. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a4960f6a8d37d70e7e98f1f6fe54e323d">RakNet::RakPeerInterface</a>.</p>
  1109. </div>
  1110. </div>
  1111. <a class="anchor" id="a489dd712e953836042df5711c8eb7e76"></a>
  1112. <div class="memitem">
  1113. <div class="memproto">
  1114. <table class="mlabels">
  1115. <tr>
  1116. <td class="mlabels-left">
  1117. <table class="memname">
  1118. <tr>
  1119. <td class="memname">void RakNet::RakPeer::DisableSecurity </td>
  1120. <td>(</td>
  1121. <td class="paramtype">void&#160;</td>
  1122. <td class="paramname"></td><td>)</td>
  1123. <td></td>
  1124. </tr>
  1125. </table>
  1126. </td>
  1127. <td class="mlabels-right">
  1128. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1129. </tr>
  1130. </table>
  1131. </div><div class="memdoc">
  1132. <p>Disables security for incoming connections. </p>
  1133. <dl class="section note"><dt>Note</dt><dd>Must be called while offline </dd></dl>
  1134. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#aab566dbe8f666dfed108aaaabc7a0ca6">RakNet::RakPeerInterface</a>.</p>
  1135. </div>
  1136. </div>
  1137. <a class="anchor" id="a2b735d6075d64dcdf5c554989f4a5f98"></a>
  1138. <div class="memitem">
  1139. <div class="memproto">
  1140. <table class="mlabels">
  1141. <tr>
  1142. <td class="mlabels-left">
  1143. <table class="memname">
  1144. <tr>
  1145. <td class="memname">int RakNet::RakPeer::GetAveragePing </td>
  1146. <td>(</td>
  1147. <td class="paramtype">const AddressOrGUID&#160;</td>
  1148. <td class="paramname"><em>systemIdentifier</em></td><td>)</td>
  1149. <td></td>
  1150. </tr>
  1151. </table>
  1152. </td>
  1153. <td class="mlabels-right">
  1154. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1155. </tr>
  1156. </table>
  1157. </div><div class="memdoc">
  1158. <p>Returns the average of all ping times read for the specific system or -1 if none read yet. </p>
  1159. <dl class="params"><dt>Parameters</dt><dd>
  1160. <table class="params">
  1161. <tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>Which system we are referring to </td></tr>
  1162. </table>
  1163. </dd>
  1164. </dl>
  1165. <dl class="section return"><dt>Returns</dt><dd>The ping time for this system, or -1 </dd></dl>
  1166. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a15627acab7077970975889d4e83dc59b">RakNet::RakPeerInterface</a>.</p>
  1167. </div>
  1168. </div>
  1169. <a class="anchor" id="a1e23c8101ff1db0f6d6429afb7b1e711"></a>
  1170. <div class="memitem">
  1171. <div class="memproto">
  1172. <table class="mlabels">
  1173. <tr>
  1174. <td class="mlabels-left">
  1175. <table class="memname">
  1176. <tr>
  1177. <td class="memname">RakNet::Time RakNet::RakPeer::GetBestClockDifferential </td>
  1178. <td>(</td>
  1179. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td>
  1180. <td class="paramname"><em>systemAddress</em></td><td>)</td>
  1181. <td> const</td>
  1182. </tr>
  1183. </table>
  1184. </td>
  1185. <td class="mlabels-right">
  1186. <span class="mlabels"><span class="mlabel">protected</span></span> </td>
  1187. </tr>
  1188. </table>
  1189. </div><div class="memdoc">
  1190. <p>Get the most accurate clock differential for a certain player. </p>
  1191. <dl class="params"><dt>Parameters</dt><dd>
  1192. <table class="params">
  1193. <tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>The player with whose clock the time difference is calculated. </td></tr>
  1194. </table>
  1195. </dd>
  1196. </dl>
  1197. <dl class="section return"><dt>Returns</dt><dd>The clock differential for a certain player. </dd></dl>
  1198. </div>
  1199. </div>
  1200. <a class="anchor" id="abc607f77d9724097030d2da6868074b3"></a>
  1201. <div class="memitem">
  1202. <div class="memproto">
  1203. <table class="mlabels">
  1204. <tr>
  1205. <td class="mlabels-left">
  1206. <table class="memname">
  1207. <tr>
  1208. <td class="memname">bool RakNet::RakPeer::GetClientPublicKeyFromSystemAddress </td>
  1209. <td>(</td>
  1210. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td>
  1211. <td class="paramname"><em>input</em>, </td>
  1212. </tr>
  1213. <tr>
  1214. <td class="paramkey"></td>
  1215. <td></td>
  1216. <td class="paramtype">char *&#160;</td>
  1217. <td class="paramname"><em>client_public_key</em>&#160;</td>
  1218. </tr>
  1219. <tr>
  1220. <td></td>
  1221. <td>)</td>
  1222. <td></td><td> const</td>
  1223. </tr>
  1224. </table>
  1225. </td>
  1226. <td class="mlabels-right">
  1227. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1228. </tr>
  1229. </table>
  1230. </div><div class="memdoc">
  1231. <p>Given the <a class="el" href="structRakNet_1_1SystemAddress.html" title="Network address for a system.">SystemAddress</a> of a connected system, get the public key they provided as an identity Returns false if system address was not found or client public key is not known </p>
  1232. <dl class="params"><dt>Parameters</dt><dd>
  1233. <table class="params">
  1234. <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>The <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> of the system </td></tr>
  1235. <tr><td class="paramdir">[in]</td><td class="paramname">client_public_key</td><td>The connected client's public key is copied to this address. Buffer must be cat::EasyHandshake::PUBLIC_KEY_BYTES bytes in length. </td></tr>
  1236. </table>
  1237. </dd>
  1238. </dl>
  1239. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a7139f333758a31e5a1f44f06b120f085">RakNet::RakPeerInterface</a>.</p>
  1240. </div>
  1241. </div>
  1242. <a class="anchor" id="ac1f87a029e47963ae24838ec87c1a076"></a>
  1243. <div class="memitem">
  1244. <div class="memproto">
  1245. <table class="mlabels">
  1246. <tr>
  1247. <td class="mlabels-left">
  1248. <table class="memname">
  1249. <tr>
  1250. <td class="memname">RakNet::Time RakNet::RakPeer::GetClockDifferential </td>
  1251. <td>(</td>
  1252. <td class="paramtype">const AddressOrGUID&#160;</td>
  1253. <td class="paramname"><em>systemIdentifier</em></td><td>)</td>
  1254. <td></td>
  1255. </tr>
  1256. </table>
  1257. </td>
  1258. <td class="mlabels-right">
  1259. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1260. </tr>
  1261. </table>
  1262. </div><div class="memdoc">
  1263. <p>Return the clock difference between your system and the specified system Subtract <a class="el" href="classRakNet_1_1RakPeer.html#ac1f87a029e47963ae24838ec87c1a076">GetClockDifferential()</a> from a time returned by the remote system to get that time relative to your own system Returns 0 if the system is unknown </p>
  1264. <dl class="params"><dt>Parameters</dt><dd>
  1265. <table class="params">
  1266. <tr><td class="paramdir">[in]</td><td class="paramname">systemIdentifier</td><td>Which system we are referring to </td></tr>
  1267. </table>
  1268. </dd>
  1269. </dl>
  1270. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a7fa284803461a09efeffd65d73068c51">RakNet::RakPeerInterface</a>.</p>
  1271. </div>
  1272. </div>
  1273. <a class="anchor" id="a0af5b69face182410f2abb11da902dd4"></a>
  1274. <div class="memitem">
  1275. <div class="memproto">
  1276. <table class="mlabels">
  1277. <tr>
  1278. <td class="mlabels-left">
  1279. <table class="memname">
  1280. <tr>
  1281. <td class="memname">bool RakNet::RakPeer::GetConnectionList </td>
  1282. <td>(</td>
  1283. <td class="paramtype"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> *&#160;</td>
  1284. <td class="paramname"><em>remoteSystems</em>, </td>
  1285. </tr>
  1286. <tr>
  1287. <td class="paramkey"></td>
  1288. <td></td>
  1289. <td class="paramtype">unsigned short *&#160;</td>
  1290. <td class="paramname"><em>numberOfSystems</em>&#160;</td>
  1291. </tr>
  1292. <tr>
  1293. <td></td>
  1294. <td>)</td>
  1295. <td></td><td> const</td>
  1296. </tr>
  1297. </table>
  1298. </td>
  1299. <td class="mlabels-right">
  1300. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1301. </tr>
  1302. </table>
  1303. </div><div class="memdoc">
  1304. <p>Fills the array remoteSystems with the <a class="el" href="structRakNet_1_1SystemAddress.html" title="Network address for a system.">SystemAddress</a> of all the systems we are connected to. </p>
  1305. <dl class="params"><dt>Parameters</dt><dd>
  1306. <table class="params">
  1307. <tr><td class="paramdir">[out]</td><td class="paramname">remoteSystems</td><td>An array of <a class="el" href="structRakNet_1_1SystemAddress.html" title="Network address for a system.">SystemAddress</a> structures, to be filled with the SystemAddresss of the systems we are connected to. Pass 0 to remoteSystems to get the number of systems we are connected to. </td></tr>
  1308. <tr><td class="paramdir">[in,out]</td><td class="paramname">numberOfSystems</td><td>As input, the size of remoteSystems array. As output, the number of elements put into the array. </td></tr>
  1309. </table>
  1310. </dd>
  1311. </dl>
  1312. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a5706fd26cf90bd45d0658d8b9a7d8111">RakNet::RakPeerInterface</a>.</p>
  1313. </div>
  1314. </div>
  1315. <a class="anchor" id="a514c8d6f1dc75b5e9bb3cb5b9dcb632b"></a>
  1316. <div class="memitem">
  1317. <div class="memproto">
  1318. <table class="mlabels">
  1319. <tr>
  1320. <td class="mlabels-left">
  1321. <table class="memname">
  1322. <tr>
  1323. <td class="memname"><a class="el" href="namespaceRakNet.html#a84a0fb005391f71130dd341f77f62138">ConnectionState</a> RakNet::RakPeer::GetConnectionState </td>
  1324. <td>(</td>
  1325. <td class="paramtype">const AddressOrGUID&#160;</td>
  1326. <td class="paramname"><em>systemIdentifier</em></td><td>)</td>
  1327. <td></td>
  1328. </tr>
  1329. </table>
  1330. </td>
  1331. <td class="mlabels-right">
  1332. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1333. </tr>
  1334. </table>
  1335. </div><div class="memdoc">
  1336. <p>Returns if a system is connected, disconnected, connecting in progress, or various other states </p>
  1337. <dl class="params"><dt>Parameters</dt><dd>
  1338. <table class="params">
  1339. <tr><td class="paramdir">[in]</td><td class="paramname">systemIdentifier</td><td>The system we are referring to </td></tr>
  1340. </table>
  1341. </dd>
  1342. </dl>
  1343. <dl class="section note"><dt>Note</dt><dd>This locks a mutex, do not call too frequently during connection attempts or the attempt will take longer and possibly even timeout </dd></dl>
  1344. <dl class="section return"><dt>Returns</dt><dd>What state the remote system is in </dd></dl>
  1345. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a33744f90a202b8e57d6a825d6af080cc">RakNet::RakPeerInterface</a>.</p>
  1346. </div>
  1347. </div>
  1348. <a class="anchor" id="a96f0e923c413fe2319d17862605d6622"></a>
  1349. <div class="memitem">
  1350. <div class="memproto">
  1351. <table class="mlabels">
  1352. <tr>
  1353. <td class="mlabels-left">
  1354. <table class="memname">
  1355. <tr>
  1356. <td class="memname"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> RakNet::RakPeer::GetExternalID </td>
  1357. <td>(</td>
  1358. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td>
  1359. <td class="paramname"><em>target</em></td><td>)</td>
  1360. <td> const</td>
  1361. </tr>
  1362. </table>
  1363. </td>
  1364. <td class="mlabels-right">
  1365. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1366. </tr>
  1367. </table>
  1368. </div><div class="memdoc">
  1369. <p>Returns the unique address identifier that represents the target on the the network and is based on the target's external IP / port. </p>
  1370. <dl class="params"><dt>Parameters</dt><dd>
  1371. <table class="params">
  1372. <tr><td class="paramdir">[in]</td><td class="paramname">target</td><td>The <a class="el" href="structRakNet_1_1SystemAddress.html" title="Network address for a system.">SystemAddress</a> of the remote system. Usually the same for all systems, unless you have two or more network cards. </td></tr>
  1373. </table>
  1374. </dd>
  1375. </dl>
  1376. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a94602ad7356b4a99f862f9793327c325">RakNet::RakPeerInterface</a>.</p>
  1377. </div>
  1378. </div>
  1379. <a class="anchor" id="ab639b98f7b007833b08930de45545433"></a>
  1380. <div class="memitem">
  1381. <div class="memproto">
  1382. <table class="mlabels">
  1383. <tr>
  1384. <td class="mlabels-left">
  1385. <table class="memname">
  1386. <tr>
  1387. <td class="memname"><a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> RakNet::RakPeer::GetGUIDFromIndex </td>
  1388. <td>(</td>
  1389. <td class="paramtype">unsigned int&#160;</td>
  1390. <td class="paramname"><em>index</em></td><td>)</td>
  1391. <td></td>
  1392. </tr>
  1393. </table>
  1394. </td>
  1395. <td class="mlabels-right">
  1396. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1397. </tr>
  1398. </table>
  1399. </div><div class="memdoc">
  1400. <p>Same as GetSystemAddressFromIndex but returns <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a>. </p>
  1401. <dl class="params"><dt>Parameters</dt><dd>
  1402. <table class="params">
  1403. <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>Index should range between 0 and the maximum number of players allowed - 1. </td></tr>
  1404. </table>
  1405. </dd>
  1406. </dl>
  1407. <dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> </dd></dl>
  1408. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#ac86fcbe5e750b08378703197bd9fddcf">RakNet::RakPeerInterface</a>.</p>
  1409. </div>
  1410. </div>
  1411. <a class="anchor" id="a41fcd1175cb8fee67b12835944ed51da"></a>
  1412. <div class="memitem">
  1413. <div class="memproto">
  1414. <table class="mlabels">
  1415. <tr>
  1416. <td class="mlabels-left">
  1417. <table class="memname">
  1418. <tr>
  1419. <td class="memname">const <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a>&amp; RakNet::RakPeer::GetGuidFromSystemAddress </td>
  1420. <td>(</td>
  1421. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td>
  1422. <td class="paramname"><em>input</em></td><td>)</td>
  1423. <td> const</td>
  1424. </tr>
  1425. </table>
  1426. </td>
  1427. <td class="mlabels-right">
  1428. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1429. </tr>
  1430. </table>
  1431. </div><div class="memdoc">
  1432. <p>Given a connected system address, this method gives the unique GUID representing that instance of <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a>. This will be the same on all systems connected to that instance of <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a>, even if the external system addresses are different. Complexity is O(log2(n)). If <em>input</em> is UNASSIGNED_SYSTEM_ADDRESS, will return your own GUID. </p>
  1433. <dl class="section pre"><dt>Precondition</dt><dd>Call <a class="el" href="classRakNet_1_1RakPeer.html#a92d493cb617381a6e750f7df6e768927" title="Starts the network threads and opens the listen port.">Startup()</a> first, or the function will return UNASSIGNED_RAKNET_GUID </dd></dl>
  1434. <dl class="params"><dt>Parameters</dt><dd>
  1435. <table class="params">
  1436. <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>The system address of the target system we are connected to. </td></tr>
  1437. </table>
  1438. </dd>
  1439. </dl>
  1440. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#aac8203dda2ba1271e753bd113b259173">RakNet::RakPeerInterface</a>.</p>
  1441. </div>
  1442. </div>
  1443. <a class="anchor" id="a395e269dce0de14f22bfb870923f22b3"></a>
  1444. <div class="memitem">
  1445. <div class="memproto">
  1446. <table class="mlabels">
  1447. <tr>
  1448. <td class="mlabels-left">
  1449. <table class="memname">
  1450. <tr>
  1451. <td class="memname">void RakNet::RakPeer::GetIncomingPassword </td>
  1452. <td>(</td>
  1453. <td class="paramtype">char *&#160;</td>
  1454. <td class="paramname"><em>passwordData</em>, </td>
  1455. </tr>
  1456. <tr>
  1457. <td class="paramkey"></td>
  1458. <td></td>
  1459. <td class="paramtype">int *&#160;</td>
  1460. <td class="paramname"><em>passwordDataLength</em>&#160;</td>
  1461. </tr>
  1462. <tr>
  1463. <td></td>
  1464. <td>)</td>
  1465. <td></td><td></td>
  1466. </tr>
  1467. </table>
  1468. </td>
  1469. <td class="mlabels-right">
  1470. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1471. </tr>
  1472. </table>
  1473. </div><div class="memdoc">
  1474. <p>Gets the password passed to SetIncomingPassword. </p>
  1475. <dl class="params"><dt>Parameters</dt><dd>
  1476. <table class="params">
  1477. <tr><td class="paramdir">[out]</td><td class="paramname">passwordData</td><td>Should point to a block large enough to hold the password data you passed to <a class="el" href="classRakNet_1_1RakPeer.html#a6d4071bbbf128604c94a27c46fa7b9ce" title="Sets the password for the incoming connections.">SetIncomingPassword()</a> </td></tr>
  1478. <tr><td class="paramdir">[in,out]</td><td class="paramname">passwordDataLength</td><td>Maximum size of the passwordData array. Modified to hold the number of bytes actually written. </td></tr>
  1479. </table>
  1480. </dd>
  1481. </dl>
  1482. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a8b5026f40cf8e6f307e2d3ac82970a30">RakNet::RakPeerInterface</a>.</p>
  1483. </div>
  1484. </div>
  1485. <a class="anchor" id="ad77373ffe92c37f01b39bc16c62ac9ba"></a>
  1486. <div class="memitem">
  1487. <div class="memproto">
  1488. <table class="mlabels">
  1489. <tr>
  1490. <td class="mlabels-left">
  1491. <table class="memname">
  1492. <tr>
  1493. <td class="memname">int RakNet::RakPeer::GetIndexFromSystemAddress </td>
  1494. <td>(</td>
  1495. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td>
  1496. <td class="paramname"><em>systemAddress</em></td><td>)</td>
  1497. <td> const</td>
  1498. </tr>
  1499. </table>
  1500. </td>
  1501. <td class="mlabels-right">
  1502. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1503. </tr>
  1504. </table>
  1505. </div><div class="memdoc">
  1506. <p>Given <em>systemAddress</em>, returns its index into remoteSystemList. </p>
  1507. <p>Values range from 0 to the maximum number of players allowed - 1. This includes systems which were formerly connected, but are now not connected. </p>
  1508. <dl class="params"><dt>Parameters</dt><dd>
  1509. <table class="params">
  1510. <tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>The <a class="el" href="structRakNet_1_1SystemAddress.html" title="Network address for a system.">SystemAddress</a> we are referring to </td></tr>
  1511. </table>
  1512. </dd>
  1513. </dl>
  1514. <dl class="section return"><dt>Returns</dt><dd>The index of this <a class="el" href="structRakNet_1_1SystemAddress.html" title="Network address for a system.">SystemAddress</a> or -1 on system not found. </dd></dl>
  1515. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#ab2015109d6bf787c46880fde513d4276">RakNet::RakPeerInterface</a>.</p>
  1516. </div>
  1517. </div>
  1518. <a class="anchor" id="acf82a248aa543c9ec04567c14004fea5"></a>
  1519. <div class="memitem">
  1520. <div class="memproto">
  1521. <table class="mlabels">
  1522. <tr>
  1523. <td class="mlabels-left">
  1524. <table class="memname">
  1525. <tr>
  1526. <td class="memname"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> RakNet::RakPeer::GetInternalID </td>
  1527. <td>(</td>
  1528. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td>
  1529. <td class="paramname"><em>systemAddress</em> = <code><a class="el" href="namespaceRakNet.html#a80c95b4ed53f42911a6fa92b85e929cf">UNASSIGNED_SYSTEM_ADDRESS</a></code>, </td>
  1530. </tr>
  1531. <tr>
  1532. <td class="paramkey"></td>
  1533. <td></td>
  1534. <td class="paramtype">const int&#160;</td>
  1535. <td class="paramname"><em>index</em> = <code>0</code>&#160;</td>
  1536. </tr>
  1537. <tr>
  1538. <td></td>
  1539. <td>)</td>
  1540. <td></td><td> const</td>
  1541. </tr>
  1542. </table>
  1543. </td>
  1544. <td class="mlabels-right">
  1545. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1546. </tr>
  1547. </table>
  1548. </div><div class="memdoc">
  1549. <p>Returns the unique address identifier that represents you or another system on the the network. </p>
  1550. <dl class="section note"><dt>Note</dt><dd>Not supported by the XBOX </dd></dl>
  1551. <dl class="params"><dt>Parameters</dt><dd>
  1552. <table class="params">
  1553. <tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>Use UNASSIGNED_SYSTEM_ADDRESS to get your behind-LAN address. Use a connected system to get their behind-LAN address. This does not return the port. </td></tr>
  1554. <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>When you have multiple internal IDs, which index to return? Currently limited to MAXIMUM_NUMBER_OF_INTERNAL_IDS (so the maximum value of this variable is MAXIMUM_NUMBER_OF_INTERNAL_IDS-1) </td></tr>
  1555. </table>
  1556. </dd>
  1557. </dl>
  1558. <dl class="section return"><dt>Returns</dt><dd>Identifier of your system internally, which may not be how other systems see if you if you are behind a NAT or proxy. </dd></dl>
  1559. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a928a49c193687ccef547f7ea3634bb54">RakNet::RakPeerInterface</a>.</p>
  1560. </div>
  1561. </div>
  1562. <a class="anchor" id="a7a21e884778d65fb4493b29e5c1826c5"></a>
  1563. <div class="memitem">
  1564. <div class="memproto">
  1565. <table class="mlabels">
  1566. <tr>
  1567. <td class="mlabels-left">
  1568. <table class="memname">
  1569. <tr>
  1570. <td class="memname">int RakNet::RakPeer::GetLastPing </td>
  1571. <td>(</td>
  1572. <td class="paramtype">const AddressOrGUID&#160;</td>
  1573. <td class="paramname"><em>systemIdentifier</em></td><td>)</td>
  1574. <td> const</td>
  1575. </tr>
  1576. </table>
  1577. </td>
  1578. <td class="mlabels-right">
  1579. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1580. </tr>
  1581. </table>
  1582. </div><div class="memdoc">
  1583. <p>Returns the last ping time read for the specific system or -1 if none read yet. </p>
  1584. <dl class="params"><dt>Parameters</dt><dd>
  1585. <table class="params">
  1586. <tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>Which system we are referring to </td></tr>
  1587. </table>
  1588. </dd>
  1589. </dl>
  1590. <dl class="section return"><dt>Returns</dt><dd>The last ping time for this system, or -1. </dd></dl>
  1591. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a0fb0115e5c85094d48239f157d9eccbb">RakNet::RakPeerInterface</a>.</p>
  1592. </div>
  1593. </div>
  1594. <a class="anchor" id="aa78c5de86816a54cae137bffb7e49bc5"></a>
  1595. <div class="memitem">
  1596. <div class="memproto">
  1597. <table class="mlabels">
  1598. <tr>
  1599. <td class="mlabels-left">
  1600. <table class="memname">
  1601. <tr>
  1602. <td class="memname">const char* RakNet::RakPeer::GetLocalIP </td>
  1603. <td>(</td>
  1604. <td class="paramtype">unsigned int&#160;</td>
  1605. <td class="paramname"><em>index</em></td><td>)</td>
  1606. <td></td>
  1607. </tr>
  1608. </table>
  1609. </td>
  1610. <td class="mlabels-right">
  1611. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1612. </tr>
  1613. </table>
  1614. </div><div class="memdoc">
  1615. <p>Returns an IP address at index 0 to GetNumberOfAddresses-1 in ipList array. </p>
  1616. <dl class="params"><dt>Parameters</dt><dd>
  1617. <table class="params">
  1618. <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>index into the list of IP addresses </td></tr>
  1619. </table>
  1620. </dd>
  1621. </dl>
  1622. <dl class="section return"><dt>Returns</dt><dd>The local IP address at this index </dd></dl>
  1623. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#ad070246537065910a500803bdf6b9cb2">RakNet::RakPeerInterface</a>.</p>
  1624. </div>
  1625. </div>
  1626. <a class="anchor" id="afdb8673a54a5f3926ac93e13a4a20367"></a>
  1627. <div class="memitem">
  1628. <div class="memproto">
  1629. <table class="mlabels">
  1630. <tr>
  1631. <td class="mlabels-left">
  1632. <table class="memname">
  1633. <tr>
  1634. <td class="memname">int RakNet::RakPeer::GetLowestPing </td>
  1635. <td>(</td>
  1636. <td class="paramtype">const AddressOrGUID&#160;</td>
  1637. <td class="paramname"><em>systemIdentifier</em></td><td>)</td>
  1638. <td> const</td>
  1639. </tr>
  1640. </table>
  1641. </td>
  1642. <td class="mlabels-right">
  1643. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1644. </tr>
  1645. </table>
  1646. </div><div class="memdoc">
  1647. <p>Returns the lowest ping time read or -1 if none read yet. </p>
  1648. <dl class="params"><dt>Parameters</dt><dd>
  1649. <table class="params">
  1650. <tr><td class="paramdir">[in]</td><td class="paramname">systemIdentifier</td><td>Which system we are referring to </td></tr>
  1651. </table>
  1652. </dd>
  1653. </dl>
  1654. <dl class="section return"><dt>Returns</dt><dd>The lowest ping time for this system, or -1. </dd></dl>
  1655. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a4eb8b0f288db5425906cd72ee5f8fae9">RakNet::RakPeerInterface</a>.</p>
  1656. </div>
  1657. </div>
  1658. <a class="anchor" id="a21eac8d486bbcb12e350c49c43c92618"></a>
  1659. <div class="memitem">
  1660. <div class="memproto">
  1661. <table class="mlabels">
  1662. <tr>
  1663. <td class="mlabels-left">
  1664. <table class="memname">
  1665. <tr>
  1666. <td class="memname">unsigned int RakNet::RakPeer::GetMaximumIncomingConnections </td>
  1667. <td>(</td>
  1668. <td class="paramtype">void&#160;</td>
  1669. <td class="paramname"></td><td>)</td>
  1670. <td> const</td>
  1671. </tr>
  1672. </table>
  1673. </td>
  1674. <td class="mlabels-right">
  1675. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1676. </tr>
  1677. </table>
  1678. </div><div class="memdoc">
  1679. <p>Returns the value passed to <a class="el" href="classRakNet_1_1RakPeer.html#a8ed81856dd81ec1cd00e17fafedee0a7" title="Sets the maximum number of incoming connections allowed.">SetMaximumIncomingConnections()</a>. </p>
  1680. <dl class="section return"><dt>Returns</dt><dd>Maximum number of incoming connections, which is always &lt;= maxConnections </dd></dl>
  1681. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#aa2985b696b46b347f5825e11e7219f83">RakNet::RakPeerInterface</a>.</p>
  1682. </div>
  1683. </div>
  1684. <a class="anchor" id="abd1743ff40a69e0362cdb483d88b801b"></a>
  1685. <div class="memitem">
  1686. <div class="memproto">
  1687. <table class="mlabels">
  1688. <tr>
  1689. <td class="mlabels-left">
  1690. <table class="memname">
  1691. <tr>
  1692. <td class="memname">unsigned int RakNet::RakPeer::GetMaximumNumberOfPeers </td>
  1693. <td>(</td>
  1694. <td class="paramtype">void&#160;</td>
  1695. <td class="paramname"></td><td>)</td>
  1696. <td> const</td>
  1697. </tr>
  1698. </table>
  1699. </td>
  1700. <td class="mlabels-right">
  1701. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1702. </tr>
  1703. </table>
  1704. </div><div class="memdoc">
  1705. <p>Return the total number of connections we are allowed. </p>
  1706. <dl class="section return"><dt>Returns</dt><dd>Total number of connections allowed. </dd></dl>
  1707. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#abfe4c34f55a92b7c0fd90ff9bbb3f644">RakNet::RakPeerInterface</a>.</p>
  1708. </div>
  1709. </div>
  1710. <a class="anchor" id="af5948dcad656f51305ed20c8b38e529b"></a>
  1711. <div class="memitem">
  1712. <div class="memproto">
  1713. <table class="mlabels">
  1714. <tr>
  1715. <td class="mlabels-left">
  1716. <table class="memname">
  1717. <tr>
  1718. <td class="memname">int RakNet::RakPeer::GetMTUSize </td>
  1719. <td>(</td>
  1720. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td>
  1721. <td class="paramname"><em>target</em></td><td>)</td>
  1722. <td> const</td>
  1723. </tr>
  1724. </table>
  1725. </td>
  1726. <td class="mlabels-right">
  1727. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1728. </tr>
  1729. </table>
  1730. </div><div class="memdoc">
  1731. <p>Returns the current MTU size. </p>
  1732. <dl class="params"><dt>Parameters</dt><dd>
  1733. <table class="params">
  1734. <tr><td class="paramdir">[in]</td><td class="paramname">target</td><td>Which system to get MTU for. UNASSIGNED_SYSTEM_ADDRESS to get the default </td></tr>
  1735. </table>
  1736. </dd>
  1737. </dl>
  1738. <dl class="section return"><dt>Returns</dt><dd>The current MTU size of the target system. </dd></dl>
  1739. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#af7359755639152292a3e35b6fb9877bb">RakNet::RakPeerInterface</a>.</p>
  1740. </div>
  1741. </div>
  1742. <a class="anchor" id="a1d6e283f476bdd4ed8b9b4c56693ecd1"></a>
  1743. <div class="memitem">
  1744. <div class="memproto">
  1745. <table class="mlabels">
  1746. <tr>
  1747. <td class="mlabels-left">
  1748. <table class="memname">
  1749. <tr>
  1750. <td class="memname">virtual uint32_t RakNet::RakPeer::GetNextSendReceipt </td>
  1751. <td>(</td>
  1752. <td class="paramtype">void&#160;</td>
  1753. <td class="paramname"></td><td>)</td>
  1754. <td></td>
  1755. </tr>
  1756. </table>
  1757. </td>
  1758. <td class="mlabels-right">
  1759. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1760. </tr>
  1761. </table>
  1762. </div><div class="memdoc">
  1763. <p>Returns the next uint32_t that <a class="el" href="classRakNet_1_1RakPeer.html#a1ee7422f744ab606c92b4ed4b28db40e" title="Sends a block of data to the specified system that you are connected to.">Send()</a> will return </p>
  1764. <dl class="section note"><dt>Note</dt><dd>If using <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> from multiple threads, this may not be accurate for your thread. Use <a class="el" href="classRakNet_1_1RakPeer.html#a9232bd1bc9c1a223ecef8682133f95ac">IncrementNextSendReceipt()</a> in that case. </dd></dl>
  1765. <dl class="section return"><dt>Returns</dt><dd>The next uint32_t that <a class="el" href="classRakNet_1_1RakPeer.html#a1ee7422f744ab606c92b4ed4b28db40e" title="Sends a block of data to the specified system that you are connected to.">Send()</a> or SendList will return </dd></dl>
  1766. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a8587fe2920712adddfa06950ff6b8998">RakNet::RakPeerInterface</a>.</p>
  1767. </div>
  1768. </div>
  1769. <a class="anchor" id="aca51c8583f3995217a940bf592d7140c"></a>
  1770. <div class="memitem">
  1771. <div class="memproto">
  1772. <table class="mlabels">
  1773. <tr>
  1774. <td class="mlabels-left">
  1775. <table class="memname">
  1776. <tr>
  1777. <td class="memname">unsigned RakNet::RakPeer::GetNumberOfAddresses </td>
  1778. <td>(</td>
  1779. <td class="paramtype">void&#160;</td>
  1780. <td class="paramname"></td><td>)</td>
  1781. <td></td>
  1782. </tr>
  1783. </table>
  1784. </td>
  1785. <td class="mlabels-right">
  1786. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1787. </tr>
  1788. </table>
  1789. </div><div class="memdoc">
  1790. <p>Returns the number of IP addresses this system has internally. </p>
  1791. <p>Get the actual addresses from <a class="el" href="classRakNet_1_1RakPeer.html#aa78c5de86816a54cae137bffb7e49bc5">GetLocalIP()</a> </p>
  1792. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a59b3cee62120132170dcf065b84114b2">RakNet::RakPeerInterface</a>.</p>
  1793. </div>
  1794. </div>
  1795. <a class="anchor" id="aec33659d51a00eed12bd1dc8a24071b0"></a>
  1796. <div class="memitem">
  1797. <div class="memproto">
  1798. <table class="mlabels">
  1799. <tr>
  1800. <td class="mlabels-left">
  1801. <table class="memname">
  1802. <tr>
  1803. <td class="memname">void RakNet::RakPeer::GetOfflinePingResponse </td>
  1804. <td>(</td>
  1805. <td class="paramtype">char **&#160;</td>
  1806. <td class="paramname"><em>data</em>, </td>
  1807. </tr>
  1808. <tr>
  1809. <td class="paramkey"></td>
  1810. <td></td>
  1811. <td class="paramtype">unsigned int *&#160;</td>
  1812. <td class="paramname"><em>length</em>&#160;</td>
  1813. </tr>
  1814. <tr>
  1815. <td></td>
  1816. <td>)</td>
  1817. <td></td><td></td>
  1818. </tr>
  1819. </table>
  1820. </td>
  1821. <td class="mlabels-right">
  1822. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1823. </tr>
  1824. </table>
  1825. </div><div class="memdoc">
  1826. <p>Returns pointers to a copy of the <em>data</em> passed to SetOfflinePingResponse. </p>
  1827. <dl class="params"><dt>Parameters</dt><dd>
  1828. <table class="params">
  1829. <tr><td class="paramdir">[out]</td><td class="paramname">data</td><td>A pointer to a copy of the data passed to <a class="el" href="classRakNet_1_1RakPeer.html#a2a534f1c0bb56b3c5b9b56ca8839917c" title="Sets the data to send along with a LAN server discovery or offline ping reply.">SetOfflinePingResponse()</a> </td></tr>
  1830. <tr><td class="paramdir">[out]</td><td class="paramname">length</td><td>A pointer filled in with the length parameter passed to <a class="el" href="classRakNet_1_1RakPeer.html#a2a534f1c0bb56b3c5b9b56ca8839917c" title="Sets the data to send along with a LAN server discovery or offline ping reply.">SetOfflinePingResponse()</a> </td></tr>
  1831. </table>
  1832. </dd>
  1833. </dl>
  1834. <dl class="section see"><dt>See Also</dt><dd><a class="el" href="classRakNet_1_1RakPeer.html#a2a534f1c0bb56b3c5b9b56ca8839917c" title="Sets the data to send along with a LAN server discovery or offline ping reply.">SetOfflinePingResponse</a> </dd></dl>
  1835. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#ae61f8651e8a45acec5bdf04384777a86">RakNet::RakPeerInterface</a>.</p>
  1836. </div>
  1837. </div>
  1838. <a class="anchor" id="a380285f3ca2ce6bc081fc8fcb4541cc9"></a>
  1839. <div class="memitem">
  1840. <div class="memproto">
  1841. <table class="mlabels">
  1842. <tr>
  1843. <td class="mlabels-left">
  1844. <table class="memname">
  1845. <tr>
  1846. <td class="memname">RemoteSystemStruct* RakNet::RakPeer::GetRemoteSystemFromSystemAddress </td>
  1847. <td>(</td>
  1848. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td>
  1849. <td class="paramname"><em>systemAddress</em>, </td>
  1850. </tr>
  1851. <tr>
  1852. <td class="paramkey"></td>
  1853. <td></td>
  1854. <td class="paramtype">bool&#160;</td>
  1855. <td class="paramname"><em>calledFromNetworkThread</em>, </td>
  1856. </tr>
  1857. <tr>
  1858. <td class="paramkey"></td>
  1859. <td></td>
  1860. <td class="paramtype">bool&#160;</td>
  1861. <td class="paramname"><em>onlyActive</em>&#160;</td>
  1862. </tr>
  1863. <tr>
  1864. <td></td>
  1865. <td>)</td>
  1866. <td></td><td> const</td>
  1867. </tr>
  1868. </table>
  1869. </td>
  1870. <td class="mlabels-right">
  1871. <span class="mlabels"><span class="mlabel">protected</span></span> </td>
  1872. </tr>
  1873. </table>
  1874. </div><div class="memdoc">
  1875. <p>Get the reliability layer associated with a systemAddress. </p>
  1876. <dl class="params"><dt>Parameters</dt><dd>
  1877. <table class="params">
  1878. <tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>The player identifier </td></tr>
  1879. </table>
  1880. </dd>
  1881. </dl>
  1882. <dl class="section return"><dt>Returns</dt><dd>0 if none </dd></dl>
  1883. </div>
  1884. </div>
  1885. <a class="anchor" id="ab69ef5d63339d36dc99b905586a23151"></a>
  1886. <div class="memitem">
  1887. <div class="memproto">
  1888. <table class="mlabels">
  1889. <tr>
  1890. <td class="mlabels-left">
  1891. <table class="memname">
  1892. <tr>
  1893. <td class="memname">virtual RakNetSocket2* RakNet::RakPeer::GetSocket </td>
  1894. <td>(</td>
  1895. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td>
  1896. <td class="paramname"><em>target</em></td><td>)</td>
  1897. <td></td>
  1898. </tr>
  1899. </table>
  1900. </td>
  1901. <td class="mlabels-right">
  1902. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1903. </tr>
  1904. </table>
  1905. </div><div class="memdoc">
  1906. <p>Get the socket used with a particular active connection. The smart pointer reference counts the RakNetSocket object, so the socket will remain active as long as the smart pointer does, even if <a class="el" href="namespaceRakNet.html" title="Simple class to send changes between directories. In essence, a simple autopatcher that can be used f...">RakNet</a> were to shutdown or close the connection. </p>
  1907. <dl class="section note"><dt>Note</dt><dd>This sends a query to the thread and blocks on the return value for up to one second. In practice it should only take a millisecond or so. </dd></dl>
  1908. <dl class="params"><dt>Parameters</dt><dd>
  1909. <table class="params">
  1910. <tr><td class="paramdir">[in]</td><td class="paramname">target</td><td>Which system. </td></tr>
  1911. </table>
  1912. </dd>
  1913. </dl>
  1914. <dl class="section return"><dt>Returns</dt><dd>A smart pointer object containing the socket information about the target. Be sure to check IsNull() which is returned if the update thread is unresponsive, shutting down, or if this system is not connected. </dd></dl>
  1915. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#adae8cd6baaa718eb5a818f5271a58122">RakNet::RakPeerInterface</a>.</p>
  1916. </div>
  1917. </div>
  1918. <a class="anchor" id="a35c353846b88cb39d4c8d12ba4f5ca42"></a>
  1919. <div class="memitem">
  1920. <div class="memproto">
  1921. <table class="mlabels">
  1922. <tr>
  1923. <td class="mlabels-left">
  1924. <table class="memname">
  1925. <tr>
  1926. <td class="memname">virtual void RakNet::RakPeer::GetSockets </td>
  1927. <td>(</td>
  1928. <td class="paramtype"><a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; RakNetSocket2 * &gt; &amp;&#160;</td>
  1929. <td class="paramname"><em>sockets</em></td><td>)</td>
  1930. <td></td>
  1931. </tr>
  1932. </table>
  1933. </td>
  1934. <td class="mlabels-right">
  1935. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1936. </tr>
  1937. </table>
  1938. </div><div class="memdoc">
  1939. <p>Gets all sockets in use. </p>
  1940. <dl class="section note"><dt>Note</dt><dd>This sends a query to the thread and blocks on the return value for up to one second. In practice it should only take a millisecond or so. </dd></dl>
  1941. <dl class="params"><dt>Parameters</dt><dd>
  1942. <table class="params">
  1943. <tr><td class="paramdir">[out]</td><td class="paramname">sockets</td><td>List of RakNetSocket structures in use. </td></tr>
  1944. </table>
  1945. </dd>
  1946. </dl>
  1947. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a09ef1181af600ec2c255a295154fe367">RakNet::RakPeerInterface</a>.</p>
  1948. </div>
  1949. </div>
  1950. <a class="anchor" id="af9f01256eab673794028fe48980ef6fa"></a>
  1951. <div class="memitem">
  1952. <div class="memproto">
  1953. <table class="mlabels">
  1954. <tr>
  1955. <td class="mlabels-left">
  1956. <table class="memname">
  1957. <tr>
  1958. <td class="memname">int RakNet::RakPeer::GetSplitMessageProgressInterval </td>
  1959. <td>(</td>
  1960. <td class="paramtype">void&#160;</td>
  1961. <td class="paramname"></td><td>)</td>
  1962. <td> const</td>
  1963. </tr>
  1964. </table>
  1965. </td>
  1966. <td class="mlabels-right">
  1967. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  1968. </tr>
  1969. </table>
  1970. </div><div class="memdoc">
  1971. <p>Returns what was passed to <a class="el" href="classRakNet_1_1RakPeer.html#a35e89d9813d6f6e7f2144a6a0437a33b" title="Controls how often to return ID_DOWNLOAD_PROGRESS for large message downloads.">SetSplitMessageProgressInterval()</a>. </p>
  1972. <dl class="section return"><dt>Returns</dt><dd>Number of messages to be recieved before a download progress notification is returned. Default to 0. </dd></dl>
  1973. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#abd4be92bcad53af859e502127c060247">RakNet::RakPeerInterface</a>.</p>
  1974. </div>
  1975. </div>
  1976. <a class="anchor" id="a0d31a8a91862a6c796730dc3a35f98ee"></a>
  1977. <div class="memitem">
  1978. <div class="memproto">
  1979. <table class="mlabels">
  1980. <tr>
  1981. <td class="mlabels-left">
  1982. <table class="memname">
  1983. <tr>
  1984. <td class="memname"><a class="el" href="structRakNet_1_1RakNetStatistics.html">RakNetStatistics</a>* RakNet::RakPeer::GetStatistics </td>
  1985. <td>(</td>
  1986. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td>
  1987. <td class="paramname"><em>systemAddress</em>, </td>
  1988. </tr>
  1989. <tr>
  1990. <td class="paramkey"></td>
  1991. <td></td>
  1992. <td class="paramtype"><a class="el" href="structRakNet_1_1RakNetStatistics.html">RakNetStatistics</a> *&#160;</td>
  1993. <td class="paramname"><em>rns</em> = <code>0</code>&#160;</td>
  1994. </tr>
  1995. <tr>
  1996. <td></td>
  1997. <td>)</td>
  1998. <td></td><td></td>
  1999. </tr>
  2000. </table>
  2001. </td>
  2002. <td class="mlabels-right">
  2003. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2004. </tr>
  2005. </table>
  2006. </div><div class="memdoc">
  2007. <p>Returns a structure containing a large set of network statistics for the specified system. You can map this data to a string using the C style <a class="el" href="namespaceRakNet.html#a49d0ff9db0d324a890e9c08add72a131">StatisticsToString()</a> function. </p>
  2008. <dl class="params"><dt>Parameters</dt><dd>
  2009. <table class="params">
  2010. <tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>Which connected system to get statistics for. </td></tr>
  2011. <tr><td class="paramdir">[in]</td><td class="paramname">rns</td><td>If you supply this structure,the network statistics will be written to it. Otherwise the method uses a static struct to write the data, which is not threadsafe. </td></tr>
  2012. </table>
  2013. </dd>
  2014. </dl>
  2015. <dl class="section return"><dt>Returns</dt><dd>0 if the specified system can't be found. Otherwise a pointer to the struct containing the specified system's network statistics. </dd></dl>
  2016. <dl class="section see"><dt>See Also</dt><dd><a class="el" href="RakNetStatistics_8h.html" title="A structure that holds all statistical data returned by RakNet.">RakNetStatistics.h</a> </dd></dl>
  2017. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a87e528130f7f0f21597a338769fe7139">RakNet::RakPeerInterface</a>.</p>
  2018. </div>
  2019. </div>
  2020. <a class="anchor" id="a399f918602df7cb051b038e17ad67ecf"></a>
  2021. <div class="memitem">
  2022. <div class="memproto">
  2023. <table class="mlabels">
  2024. <tr>
  2025. <td class="mlabels-left">
  2026. <table class="memname">
  2027. <tr>
  2028. <td class="memname">bool RakNet::RakPeer::GetStatistics </td>
  2029. <td>(</td>
  2030. <td class="paramtype">const unsigned int&#160;</td>
  2031. <td class="paramname"><em>index</em>, </td>
  2032. </tr>
  2033. <tr>
  2034. <td class="paramkey"></td>
  2035. <td></td>
  2036. <td class="paramtype"><a class="el" href="structRakNet_1_1RakNetStatistics.html">RakNetStatistics</a> *&#160;</td>
  2037. <td class="paramname"><em>rns</em>&#160;</td>
  2038. </tr>
  2039. <tr>
  2040. <td></td>
  2041. <td>)</td>
  2042. <td></td><td></td>
  2043. </tr>
  2044. </table>
  2045. </td>
  2046. <td class="mlabels-right">
  2047. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2048. </tr>
  2049. </table>
  2050. </div><div class="memdoc">
  2051. <p>Returns the network statistics of the system at the given index in the remoteSystemList. </p>
  2052. <dl class="section return"><dt>Returns</dt><dd>True if the index is less than the maximum number of peers allowed and the system is active. False otherwise. </dd></dl>
  2053. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a28c5bd84842962e60097512a9f6ff463">RakNet::RakPeerInterface</a>.</p>
  2054. </div>
  2055. </div>
  2056. <a class="anchor" id="acffede0c021450b37b16e6946c694a7d"></a>
  2057. <div class="memitem">
  2058. <div class="memproto">
  2059. <table class="mlabels">
  2060. <tr>
  2061. <td class="mlabels-left">
  2062. <table class="memname">
  2063. <tr>
  2064. <td class="memname">virtual void RakNet::RakPeer::GetStatisticsList </td>
  2065. <td>(</td>
  2066. <td class="paramtype"><a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> &gt; &amp;&#160;</td>
  2067. <td class="paramname"><em>addresses</em>, </td>
  2068. </tr>
  2069. <tr>
  2070. <td class="paramkey"></td>
  2071. <td></td>
  2072. <td class="paramtype"><a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> &gt; &amp;&#160;</td>
  2073. <td class="paramname"><em>guids</em>, </td>
  2074. </tr>
  2075. <tr>
  2076. <td class="paramkey"></td>
  2077. <td></td>
  2078. <td class="paramtype"><a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="structRakNet_1_1RakNetStatistics.html">RakNetStatistics</a> &gt; &amp;&#160;</td>
  2079. <td class="paramname"><em>statistics</em>&#160;</td>
  2080. </tr>
  2081. <tr>
  2082. <td></td>
  2083. <td>)</td>
  2084. <td></td><td></td>
  2085. </tr>
  2086. </table>
  2087. </td>
  2088. <td class="mlabels-right">
  2089. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2090. </tr>
  2091. </table>
  2092. </div><div class="memdoc">
  2093. <p>Returns the list of systems, and statistics for each of those systems Each system has one entry in each of the lists, in the same order. </p>
  2094. <dl class="params"><dt>Parameters</dt><dd>
  2095. <table class="params">
  2096. <tr><td class="paramdir">[out]</td><td class="paramname">addresses</td><td><a class="el" href="structRakNet_1_1SystemAddress.html" title="Network address for a system.">SystemAddress</a> for each connected system </td></tr>
  2097. <tr><td class="paramdir">[out]</td><td class="paramname">guids</td><td><a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> for each connected system </td></tr>
  2098. <tr><td class="paramdir">[out]</td><td class="paramname">statistics</td><td>Calculated <a class="el" href="structRakNet_1_1RakNetStatistics.html" title="Network Statisics Usage.">RakNetStatistics</a> for each connected system </td></tr>
  2099. </table>
  2100. </dd>
  2101. </dl>
  2102. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#ad474ee839667fb5e1b667ea5465dc021">RakNet::RakPeerInterface</a>.</p>
  2103. </div>
  2104. </div>
  2105. <a class="anchor" id="ac591b0ac4b88b9cdf182fc4769d9de98"></a>
  2106. <div class="memitem">
  2107. <div class="memproto">
  2108. <table class="mlabels">
  2109. <tr>
  2110. <td class="mlabels-left">
  2111. <table class="memname">
  2112. <tr>
  2113. <td class="memname"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> RakNet::RakPeer::GetSystemAddressFromGuid </td>
  2114. <td>(</td>
  2115. <td class="paramtype">const <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a>&#160;</td>
  2116. <td class="paramname"><em>input</em></td><td>)</td>
  2117. <td> const</td>
  2118. </tr>
  2119. </table>
  2120. </td>
  2121. <td class="mlabels-right">
  2122. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2123. </tr>
  2124. </table>
  2125. </div><div class="memdoc">
  2126. <p>Gives the system address of a connected system, given its GUID. The GUID will be the same on all systems connected to that instance of <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a>, even if the external system addresses are different. Currently O(log(n)), but this may be improved in the future If <em>input</em> is UNASSIGNED_RAKNET_GUID, UNASSIGNED_SYSTEM_ADDRESS is returned. </p>
  2127. <dl class="params"><dt>Parameters</dt><dd>
  2128. <table class="params">
  2129. <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>The <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> of the target system. </td></tr>
  2130. </table>
  2131. </dd>
  2132. </dl>
  2133. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#adaaff66118400b6bbcb31c11419cd791">RakNet::RakPeerInterface</a>.</p>
  2134. </div>
  2135. </div>
  2136. <a class="anchor" id="aa3159d6eabc0a1a4298fb67c7fc7146b"></a>
  2137. <div class="memitem">
  2138. <div class="memproto">
  2139. <table class="mlabels">
  2140. <tr>
  2141. <td class="mlabels-left">
  2142. <table class="memname">
  2143. <tr>
  2144. <td class="memname"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> RakNet::RakPeer::GetSystemAddressFromIndex </td>
  2145. <td>(</td>
  2146. <td class="paramtype">unsigned int&#160;</td>
  2147. <td class="paramname"><em>index</em></td><td>)</td>
  2148. <td></td>
  2149. </tr>
  2150. </table>
  2151. </td>
  2152. <td class="mlabels-right">
  2153. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2154. </tr>
  2155. </table>
  2156. </div><div class="memdoc">
  2157. <p>Given <em>index</em> into remoteSystemList, will return a <a class="el" href="structRakNet_1_1SystemAddress.html" title="Network address for a system.">SystemAddress</a>. This function is only useful for looping through all systems. </p>
  2158. <dl class="params"><dt>Parameters</dt><dd>
  2159. <table class="params">
  2160. <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>Index should range between 0 and the maximum number of players allowed - 1. </td></tr>
  2161. </table>
  2162. </dd>
  2163. </dl>
  2164. <dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structRakNet_1_1SystemAddress.html" title="Network address for a system.">SystemAddress</a> structure corresponding to <em>index</em> in remoteSystemList. </dd></dl>
  2165. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#aaf66ca0e72313053922bfb1c1b602889">RakNet::RakPeerInterface</a>.</p>
  2166. </div>
  2167. </div>
  2168. <a class="anchor" id="a791779bb9714e830f19a5f12961576d7"></a>
  2169. <div class="memitem">
  2170. <div class="memproto">
  2171. <table class="mlabels">
  2172. <tr>
  2173. <td class="mlabels-left">
  2174. <table class="memname">
  2175. <tr>
  2176. <td class="memname">void RakNet::RakPeer::GetSystemList </td>
  2177. <td>(</td>
  2178. <td class="paramtype"><a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> &gt; &amp;&#160;</td>
  2179. <td class="paramname"><em>addresses</em>, </td>
  2180. </tr>
  2181. <tr>
  2182. <td class="paramkey"></td>
  2183. <td></td>
  2184. <td class="paramtype"><a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> &gt; &amp;&#160;</td>
  2185. <td class="paramname"><em>guids</em>&#160;</td>
  2186. </tr>
  2187. <tr>
  2188. <td></td>
  2189. <td>)</td>
  2190. <td></td><td> const</td>
  2191. </tr>
  2192. </table>
  2193. </td>
  2194. <td class="mlabels-right">
  2195. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2196. </tr>
  2197. </table>
  2198. </div><div class="memdoc">
  2199. <p>Same as calling GetSystemAddressFromIndex and GetGUIDFromIndex for all systems, but more efficient Indices match each other, so <em>addresses</em>[0] and <em>guids</em>[0] refer to the same system. </p>
  2200. <dl class="params"><dt>Parameters</dt><dd>
  2201. <table class="params">
  2202. <tr><td class="paramdir">[out]</td><td class="paramname">addresses</td><td>All system addresses. Size of the list is the number of connections. Size of the <em>addresses</em> list will match the size of the <em>guids</em> list. </td></tr>
  2203. <tr><td class="paramdir">[out]</td><td class="paramname">guids</td><td>All guids. Size of the list is the number of connections. Size of the list will match the size of the <em>addresses</em> list. </td></tr>
  2204. </table>
  2205. </dd>
  2206. </dl>
  2207. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#aa1939c66f7190e3c647a6a685a6eb248">RakNet::RakPeerInterface</a>.</p>
  2208. </div>
  2209. </div>
  2210. <a class="anchor" id="a12dc51372f2a5a109f3c6a55ba799763"></a>
  2211. <div class="memitem">
  2212. <div class="memproto">
  2213. <table class="mlabels">
  2214. <tr>
  2215. <td class="mlabels-left">
  2216. <table class="memname">
  2217. <tr>
  2218. <td class="memname">RakNet::TimeMS RakNet::RakPeer::GetTimeoutTime </td>
  2219. <td>(</td>
  2220. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td>
  2221. <td class="paramname"><em>target</em></td><td>)</td>
  2222. <td></td>
  2223. </tr>
  2224. </table>
  2225. </td>
  2226. <td class="mlabels-right">
  2227. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2228. </tr>
  2229. </table>
  2230. </div><div class="memdoc">
  2231. <p>Returns the Timeout time for the given system. </p>
  2232. <dl class="params"><dt>Parameters</dt><dd>
  2233. <table class="params">
  2234. <tr><td class="paramdir">[in]</td><td class="paramname">target</td><td>Target system to get the TimeoutTime for. Pass UNASSIGNED_SYSTEM_ADDRESS to get the default value. </td></tr>
  2235. </table>
  2236. </dd>
  2237. </dl>
  2238. <dl class="section return"><dt>Returns</dt><dd>Timeout time for a given system. </dd></dl>
  2239. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a0fd3a4d282327944ee50b00c79baf420">RakNet::RakPeerInterface</a>.</p>
  2240. </div>
  2241. </div>
  2242. <a class="anchor" id="a9232bd1bc9c1a223ecef8682133f95ac"></a>
  2243. <div class="memitem">
  2244. <div class="memproto">
  2245. <table class="mlabels">
  2246. <tr>
  2247. <td class="mlabels-left">
  2248. <table class="memname">
  2249. <tr>
  2250. <td class="memname">virtual uint32_t RakNet::RakPeer::IncrementNextSendReceipt </td>
  2251. <td>(</td>
  2252. <td class="paramtype">void&#160;</td>
  2253. <td class="paramname"></td><td>)</td>
  2254. <td></td>
  2255. </tr>
  2256. </table>
  2257. </td>
  2258. <td class="mlabels-right">
  2259. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2260. </tr>
  2261. </table>
  2262. </div><div class="memdoc">
  2263. <p>Returns the next uint32_t that <a class="el" href="classRakNet_1_1RakPeer.html#a1ee7422f744ab606c92b4ed4b28db40e" title="Sends a block of data to the specified system that you are connected to.">Send()</a> will return, and increments the value by one </p>
  2264. <dl class="section note"><dt>Note</dt><dd>If using <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> from multiple threads, pass this to forceReceipt in the send function </dd></dl>
  2265. <dl class="section return"><dt>Returns</dt><dd>The next uint32_t that <a class="el" href="classRakNet_1_1RakPeer.html#a1ee7422f744ab606c92b4ed4b28db40e" title="Sends a block of data to the specified system that you are connected to.">Send()</a> or SendList will return </dd></dl>
  2266. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a9a406f292a6c44f551e9d8606992558e">RakNet::RakPeerInterface</a>.</p>
  2267. </div>
  2268. </div>
  2269. <a class="anchor" id="a5445d0e8db3e7ef1e38b7fc5bc0d3920"></a>
  2270. <div class="memitem">
  2271. <div class="memproto">
  2272. <table class="mlabels">
  2273. <tr>
  2274. <td class="mlabels-left">
  2275. <table class="memname">
  2276. <tr>
  2277. <td class="memname">bool RakNet::RakPeer::InitializeSecurity </td>
  2278. <td>(</td>
  2279. <td class="paramtype">const char *&#160;</td>
  2280. <td class="paramname"><em>publicKey</em>, </td>
  2281. </tr>
  2282. <tr>
  2283. <td class="paramkey"></td>
  2284. <td></td>
  2285. <td class="paramtype">const char *&#160;</td>
  2286. <td class="paramname"><em>privateKey</em>, </td>
  2287. </tr>
  2288. <tr>
  2289. <td class="paramkey"></td>
  2290. <td></td>
  2291. <td class="paramtype">bool&#160;</td>
  2292. <td class="paramname"><em>bRequireClientKey</em> = <code>false</code>&#160;</td>
  2293. </tr>
  2294. <tr>
  2295. <td></td>
  2296. <td>)</td>
  2297. <td></td><td></td>
  2298. </tr>
  2299. </table>
  2300. </td>
  2301. <td class="mlabels-right">
  2302. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2303. </tr>
  2304. </table>
  2305. </div><div class="memdoc">
  2306. <p>If you accept connections, you must call this or else security will not be enabled for incoming connections. This feature requires more round trips, bandwidth, and CPU time for the connection handshake x64 builds require under 25% of the CPU time of other builds See the Encryption sample for example usage </p>
  2307. <dl class="section pre"><dt>Precondition</dt><dd>Must be called while offline </dd>
  2308. <dd>
  2309. LIBCAT_SECURITY must be defined to 1 in NativeFeatureIncludes.h for this function to have any effect </dd></dl>
  2310. <dl class="params"><dt>Parameters</dt><dd>
  2311. <table class="params">
  2312. <tr><td class="paramdir">[in]</td><td class="paramname">publicKey</td><td>A pointer to the public key for accepting new connections </td></tr>
  2313. <tr><td class="paramdir">[in]</td><td class="paramname">privateKey</td><td>A pointer to the private key for accepting new connections </td></tr>
  2314. <tr><td class="paramdir">[in]</td><td class="paramname">bRequireClientKey,:</td><td>Should be set to false for most servers. Allows the server to accept a public key from connecting clients as a proof of identity but eats twice as much CPU time as a normal connection </td></tr>
  2315. </table>
  2316. </dd>
  2317. </dl>
  2318. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#ab5389821efb5d09470f8429925766eb3">RakNet::RakPeerInterface</a>.</p>
  2319. </div>
  2320. </div>
  2321. <a class="anchor" id="ae6bb2c4de0b24283b231154d29304e00"></a>
  2322. <div class="memitem">
  2323. <div class="memproto">
  2324. <table class="mlabels">
  2325. <tr>
  2326. <td class="mlabels-left">
  2327. <table class="memname">
  2328. <tr>
  2329. <td class="memname">bool RakNet::RakPeer::IsActive </td>
  2330. <td>(</td>
  2331. <td class="paramtype">void&#160;</td>
  2332. <td class="paramname"></td><td>)</td>
  2333. <td> const</td>
  2334. </tr>
  2335. </table>
  2336. </td>
  2337. <td class="mlabels-right">
  2338. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2339. </tr>
  2340. </table>
  2341. </div><div class="memdoc">
  2342. <p>Returns true if the network thread is running. </p>
  2343. <dl class="section return"><dt>Returns</dt><dd>True if the network thread is running, False otherwise </dd></dl>
  2344. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#affcba03406b89157976cf0e6a8924d66">RakNet::RakPeerInterface</a>.</p>
  2345. </div>
  2346. </div>
  2347. <a class="anchor" id="a499626110e1409b09e7d955722c4c3fd"></a>
  2348. <div class="memitem">
  2349. <div class="memproto">
  2350. <table class="mlabels">
  2351. <tr>
  2352. <td class="mlabels-left">
  2353. <table class="memname">
  2354. <tr>
  2355. <td class="memname">bool RakNet::RakPeer::IsBanned </td>
  2356. <td>(</td>
  2357. <td class="paramtype">const char *&#160;</td>
  2358. <td class="paramname"><em>IP</em></td><td>)</td>
  2359. <td></td>
  2360. </tr>
  2361. </table>
  2362. </td>
  2363. <td class="mlabels-right">
  2364. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2365. </tr>
  2366. </table>
  2367. </div><div class="memdoc">
  2368. <p>Returns true or false indicating if a particular IP is banned. </p>
  2369. <dl class="params"><dt>Parameters</dt><dd>
  2370. <table class="params">
  2371. <tr><td class="paramdir">[in]</td><td class="paramname">IP</td><td>Dotted IP address. </td></tr>
  2372. </table>
  2373. </dd>
  2374. </dl>
  2375. <dl class="section return"><dt>Returns</dt><dd>True if IP matches any IPs in the ban list, accounting for any wildcards. False otherwise. </dd></dl>
  2376. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#ae28629f202de81ad4816470cd0f8fd94">RakNet::RakPeerInterface</a>.</p>
  2377. </div>
  2378. </div>
  2379. <a class="anchor" id="a654c29f6f195b0dcd105a856c99222d1"></a>
  2380. <div class="memitem">
  2381. <div class="memproto">
  2382. <table class="mlabels">
  2383. <tr>
  2384. <td class="mlabels-left">
  2385. <table class="memname">
  2386. <tr>
  2387. <td class="memname">bool RakNet::RakPeer::IsInSecurityExceptionList </td>
  2388. <td>(</td>
  2389. <td class="paramtype">const char *&#160;</td>
  2390. <td class="paramname"><em>ip</em></td><td>)</td>
  2391. <td></td>
  2392. </tr>
  2393. </table>
  2394. </td>
  2395. <td class="mlabels-right">
  2396. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2397. </tr>
  2398. </table>
  2399. </div><div class="memdoc">
  2400. <p>Checks to see if a given IP is in the security exception list. </p>
  2401. <dl class="params"><dt>Parameters</dt><dd>
  2402. <table class="params">
  2403. <tr><td class="paramdir">[in]</td><td class="paramname">IP</td><td>address to check. </td></tr>
  2404. </table>
  2405. </dd>
  2406. </dl>
  2407. <dl class="section return"><dt>Returns</dt><dd>True if the IP address is found in security exception list, else returns false. </dd></dl>
  2408. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a2672cee4147e50818769e3573fb5c459">RakNet::RakPeerInterface</a>.</p>
  2409. </div>
  2410. </div>
  2411. <a class="anchor" id="ad89d80f939408a620a5e41eeab0a588a"></a>
  2412. <div class="memitem">
  2413. <div class="memproto">
  2414. <table class="mlabels">
  2415. <tr>
  2416. <td class="mlabels-left">
  2417. <table class="memname">
  2418. <tr>
  2419. <td class="memname">bool RakNet::RakPeer::IsLocalIP </td>
  2420. <td>(</td>
  2421. <td class="paramtype">const char *&#160;</td>
  2422. <td class="paramname"><em>ip</em></td><td>)</td>
  2423. <td></td>
  2424. </tr>
  2425. </table>
  2426. </td>
  2427. <td class="mlabels-right">
  2428. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2429. </tr>
  2430. </table>
  2431. </div><div class="memdoc">
  2432. <p>Is this a local IP? Checks if this ip is in the ipList array. </p>
  2433. <dl class="params"><dt>Parameters</dt><dd>
  2434. <table class="params">
  2435. <tr><td class="paramdir">[in]</td><td class="paramname">An</td><td>IP address to check, excluding the port. </td></tr>
  2436. </table>
  2437. </dd>
  2438. </dl>
  2439. <dl class="section return"><dt>Returns</dt><dd>True if this is one of the IP addresses returned by GetLocalIP </dd></dl>
  2440. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#ac37fe2c8b35abdc3a441541e539ebd10">RakNet::RakPeerInterface</a>.</p>
  2441. </div>
  2442. </div>
  2443. <a class="anchor" id="adc9c2b58a0970b6a80e50b1ecf470e43"></a>
  2444. <div class="memitem">
  2445. <div class="memproto">
  2446. <table class="mlabels">
  2447. <tr>
  2448. <td class="mlabels-left">
  2449. <table class="memname">
  2450. <tr>
  2451. <td class="memname">virtual bool RakNet::RakPeer::IsNetworkSimulatorActive </td>
  2452. <td>(</td>
  2453. <td class="paramtype">void&#160;</td>
  2454. <td class="paramname"></td><td>)</td>
  2455. <td></td>
  2456. </tr>
  2457. </table>
  2458. </td>
  2459. <td class="mlabels-right">
  2460. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2461. </tr>
  2462. </table>
  2463. </div><div class="memdoc">
  2464. <p>Returns if you previously called ApplyNetworkSimulator </p>
  2465. <dl class="section return"><dt>Returns</dt><dd>If you previously called ApplyNetworkSimulator </dd></dl>
  2466. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a917c367bcba491fb243161025b6eab01">RakNet::RakPeerInterface</a>.</p>
  2467. </div>
  2468. </div>
  2469. <a class="anchor" id="a4d47b849ba6e7ecf2d1fca3198a60ba5"></a>
  2470. <div class="memitem">
  2471. <div class="memproto">
  2472. <table class="mlabels">
  2473. <tr>
  2474. <td class="mlabels-left">
  2475. <table class="memname">
  2476. <tr>
  2477. <td class="memname">unsigned short RakNet::RakPeer::NumberOfConnections </td>
  2478. <td>(</td>
  2479. <td class="paramtype">void&#160;</td>
  2480. <td class="paramname"></td><td>)</td>
  2481. <td> const</td>
  2482. </tr>
  2483. </table>
  2484. </td>
  2485. <td class="mlabels-right">
  2486. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2487. </tr>
  2488. </table>
  2489. </div><div class="memdoc">
  2490. <p>Returns how many open connections exist at this time. </p>
  2491. <dl class="section return"><dt>Returns</dt><dd>Number of open connections. </dd></dl>
  2492. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a88611e451f6f6e0d5f7cb00ce5bcabf9">RakNet::RakPeerInterface</a>.</p>
  2493. </div>
  2494. </div>
  2495. <a class="anchor" id="a9bb94828e0ad89e0d6c44a671bf22f8d"></a>
  2496. <div class="memitem">
  2497. <div class="memproto">
  2498. <table class="mlabels">
  2499. <tr>
  2500. <td class="mlabels-left">
  2501. <table class="memname">
  2502. <tr>
  2503. <td class="memname">void RakNet::RakPeer::Ping </td>
  2504. <td>(</td>
  2505. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td>
  2506. <td class="paramname"><em>target</em></td><td>)</td>
  2507. <td></td>
  2508. </tr>
  2509. </table>
  2510. </td>
  2511. <td class="mlabels-right">
  2512. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2513. </tr>
  2514. </table>
  2515. </div><div class="memdoc">
  2516. <p>Send a ping to the specified connected system. </p>
  2517. <dl class="section pre"><dt>Precondition</dt><dd>The sender and recipient must already be started via a successful call to <a class="el" href="classRakNet_1_1RakPeer.html#a92d493cb617381a6e750f7df6e768927" title="Starts the network threads and opens the listen port.">Startup()</a> </dd></dl>
  2518. <dl class="params"><dt>Parameters</dt><dd>
  2519. <table class="params">
  2520. <tr><td class="paramdir">[in]</td><td class="paramname">target</td><td>Which system to ping </td></tr>
  2521. </table>
  2522. </dd>
  2523. </dl>
  2524. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a49dbff7ab8f516361e3d05645c2b7901">RakNet::RakPeerInterface</a>.</p>
  2525. </div>
  2526. </div>
  2527. <a class="anchor" id="af7dd13a4c3d38e65bf816a604c6042c7"></a>
  2528. <div class="memitem">
  2529. <div class="memproto">
  2530. <table class="mlabels">
  2531. <tr>
  2532. <td class="mlabels-left">
  2533. <table class="memname">
  2534. <tr>
  2535. <td class="memname">bool RakNet::RakPeer::Ping </td>
  2536. <td>(</td>
  2537. <td class="paramtype">const char *&#160;</td>
  2538. <td class="paramname"><em>host</em>, </td>
  2539. </tr>
  2540. <tr>
  2541. <td class="paramkey"></td>
  2542. <td></td>
  2543. <td class="paramtype">unsigned short&#160;</td>
  2544. <td class="paramname"><em>remotePort</em>, </td>
  2545. </tr>
  2546. <tr>
  2547. <td class="paramkey"></td>
  2548. <td></td>
  2549. <td class="paramtype">bool&#160;</td>
  2550. <td class="paramname"><em>onlyReplyOnAcceptingConnections</em>, </td>
  2551. </tr>
  2552. <tr>
  2553. <td class="paramkey"></td>
  2554. <td></td>
  2555. <td class="paramtype">unsigned&#160;</td>
  2556. <td class="paramname"><em>connectionSocketIndex</em> = <code>0</code>&#160;</td>
  2557. </tr>
  2558. <tr>
  2559. <td></td>
  2560. <td>)</td>
  2561. <td></td><td></td>
  2562. </tr>
  2563. </table>
  2564. </td>
  2565. <td class="mlabels-right">
  2566. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2567. </tr>
  2568. </table>
  2569. </div><div class="memdoc">
  2570. <p>Send a ping to the specified unconnected system. </p>
  2571. <p>The remote system, if it is Initialized, will respond with ID_PONG followed by sizeof(RakNet::TimeMS) containing the system time the ping was sent. Default is 4 bytes - See __GET_TIME_64BIT in <a class="el" href="RakNetTypes_8h.html" title="Types used by RakNet, most of which involve user code.">RakNetTypes.h</a> System should reply with ID_PONG if it is active </p>
  2572. <dl class="params"><dt>Parameters</dt><dd>
  2573. <table class="params">
  2574. <tr><td class="paramdir">[in]</td><td class="paramname">host</td><td>Either a dotted IP address or a domain name. Can be 255.255.255.255 for LAN broadcast. </td></tr>
  2575. <tr><td class="paramdir">[in]</td><td class="paramname">remotePort</td><td>Which port to connect to on the remote machine. </td></tr>
  2576. <tr><td class="paramdir">[in]</td><td class="paramname">onlyReplyOnAcceptingConnections</td><td>Only request a reply if the remote system is accepting connections </td></tr>
  2577. <tr><td class="paramdir">[in]</td><td class="paramname">connectionSocketIndex</td><td>Index into the array of socket descriptors passed to socketDescriptors in <a class="el" href="classRakNet_1_1RakPeer.html#a92d493cb617381a6e750f7df6e768927" title="Starts the network threads and opens the listen port.">RakPeer::Startup()</a> to send on. </td></tr>
  2578. </table>
  2579. </dd>
  2580. </dl>
  2581. <dl class="section return"><dt>Returns</dt><dd>true on success, false on failure (unknown hostname) </dd></dl>
  2582. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#ad5667c9d47585be3a65485f9c81f7045">RakNet::RakPeerInterface</a>.</p>
  2583. </div>
  2584. </div>
  2585. <a class="anchor" id="ac32f687f4bbd396e326be77ac1fa77a8"></a>
  2586. <div class="memitem">
  2587. <div class="memproto">
  2588. <table class="mlabels">
  2589. <tr>
  2590. <td class="mlabels-left">
  2591. <table class="memname">
  2592. <tr>
  2593. <td class="memname">void RakNet::RakPeer::PushBackPacket </td>
  2594. <td>(</td>
  2595. <td class="paramtype"><a class="el" href="structRakNet_1_1Packet.html">Packet</a> *&#160;</td>
  2596. <td class="paramname"><em>packet</em>, </td>
  2597. </tr>
  2598. <tr>
  2599. <td class="paramkey"></td>
  2600. <td></td>
  2601. <td class="paramtype">bool&#160;</td>
  2602. <td class="paramname"><em>pushAtHead</em>&#160;</td>
  2603. </tr>
  2604. <tr>
  2605. <td></td>
  2606. <td>)</td>
  2607. <td></td><td></td>
  2608. </tr>
  2609. </table>
  2610. </td>
  2611. <td class="mlabels-right">
  2612. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2613. </tr>
  2614. </table>
  2615. </div><div class="memdoc">
  2616. <p>Puts a message back in the receive queue in case you don't want to deal with it immediately. </p>
  2617. <dl class="params"><dt>Parameters</dt><dd>
  2618. <table class="params">
  2619. <tr><td class="paramdir">[in]</td><td class="paramname">packet</td><td>The pointer to the packet you want to push back. </td></tr>
  2620. <tr><td class="paramdir">[in]</td><td class="paramname">pushAtHead</td><td>True to push the packet at the start of the queue so that the next receive call returns it. False to push it at the end of the queue. </td></tr>
  2621. </table>
  2622. </dd>
  2623. </dl>
  2624. <dl class="section note"><dt>Note</dt><dd>Setting pushAtHead to false end makes the packets out of order. </dd></dl>
  2625. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a29c5527b07a3ddc32083d8ec1e24318b">RakNet::RakPeerInterface</a>.</p>
  2626. </div>
  2627. </div>
  2628. <a class="anchor" id="a46d90fb903e747f76d63eb3a96543740"></a>
  2629. <div class="memitem">
  2630. <div class="memproto">
  2631. <table class="mlabels">
  2632. <tr>
  2633. <td class="mlabels-left">
  2634. <table class="memname">
  2635. <tr>
  2636. <td class="memname"><a class="el" href="structRakNet_1_1Packet.html">Packet</a>* RakNet::RakPeer::Receive </td>
  2637. <td>(</td>
  2638. <td class="paramtype">void&#160;</td>
  2639. <td class="paramname"></td><td>)</td>
  2640. <td></td>
  2641. </tr>
  2642. </table>
  2643. </td>
  2644. <td class="mlabels-right">
  2645. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2646. </tr>
  2647. </table>
  2648. </div><div class="memdoc">
  2649. <p>Gets a message from the incoming message queue. </p>
  2650. <p>Use <a class="el" href="classRakNet_1_1RakPeer.html#ae3e053f8f77d9b2e7b7fcd03f8f9120e" title="Call this to deallocate a message returned by Receive() when you are done handling it...">DeallocatePacket()</a> to deallocate the message after you are done with it. User-thread functions, such as RPC calls and the plugin function PluginInterface::Update occur here. </p>
  2651. <dl class="section return"><dt>Returns</dt><dd>0 if no packets are waiting to be handled, otherwise a pointer to a packet. </dd></dl>
  2652. <dl class="section note"><dt>Note</dt><dd>COMMON MISTAKE: Be sure to call this in a loop, once per game tick, until it returns 0. If you only process one packet per game tick they will buffer up. </dd></dl>
  2653. <dl class="section see"><dt>See Also</dt><dd><a class="el" href="RakNetTypes_8h.html" title="Types used by RakNet, most of which involve user code.">RakNetTypes.h</a> contains struct <a class="el" href="structRakNet_1_1Packet.html" title="This represents a user message from another system.">Packet</a>. </dd></dl>
  2654. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a1c50453d9dee600920aeabd62ad7c119">RakNet::RakPeerInterface</a>.</p>
  2655. </div>
  2656. </div>
  2657. <a class="anchor" id="a931823b7400d31ad641d6f6da1e69b88"></a>
  2658. <div class="memitem">
  2659. <div class="memproto">
  2660. <table class="mlabels">
  2661. <tr>
  2662. <td class="mlabels-left">
  2663. <table class="memname">
  2664. <tr>
  2665. <td class="memname">void RakNet::RakPeer::RemoveFromSecurityExceptionList </td>
  2666. <td>(</td>
  2667. <td class="paramtype">const char *&#160;</td>
  2668. <td class="paramname"><em>ip</em></td><td>)</td>
  2669. <td></td>
  2670. </tr>
  2671. </table>
  2672. </td>
  2673. <td class="mlabels-right">
  2674. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2675. </tr>
  2676. </table>
  2677. </div><div class="memdoc">
  2678. <p>Remove a specific connection previously added via AddToSecurityExceptionList. </p>
  2679. <dl class="params"><dt>Parameters</dt><dd>
  2680. <table class="params">
  2681. <tr><td class="paramdir">[in]</td><td class="paramname">ip</td><td>IP address to remove. Pass 0 to remove all IP addresses. * wildcards are supported. </td></tr>
  2682. </table>
  2683. </dd>
  2684. </dl>
  2685. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a8eba6b20dcba02453d1ed2ad77499f7d">RakNet::RakPeerInterface</a>.</p>
  2686. </div>
  2687. </div>
  2688. <a class="anchor" id="a1ee7422f744ab606c92b4ed4b28db40e"></a>
  2689. <div class="memitem">
  2690. <div class="memproto">
  2691. <table class="mlabels">
  2692. <tr>
  2693. <td class="mlabels-left">
  2694. <table class="memname">
  2695. <tr>
  2696. <td class="memname">uint32_t RakNet::RakPeer::Send </td>
  2697. <td>(</td>
  2698. <td class="paramtype">const char *&#160;</td>
  2699. <td class="paramname"><em>data</em>, </td>
  2700. </tr>
  2701. <tr>
  2702. <td class="paramkey"></td>
  2703. <td></td>
  2704. <td class="paramtype">const int&#160;</td>
  2705. <td class="paramname"><em>length</em>, </td>
  2706. </tr>
  2707. <tr>
  2708. <td class="paramkey"></td>
  2709. <td></td>
  2710. <td class="paramtype"><a class="el" href="PacketPriority_8h.html#a659378374e516180f93640c79f59705c">PacketPriority</a>&#160;</td>
  2711. <td class="paramname"><em>priority</em>, </td>
  2712. </tr>
  2713. <tr>
  2714. <td class="paramkey"></td>
  2715. <td></td>
  2716. <td class="paramtype"><a class="el" href="PacketPriority_8h.html#ae41fa01235e99dced384d137fa874a7e">PacketReliability</a>&#160;</td>
  2717. <td class="paramname"><em>reliability</em>, </td>
  2718. </tr>
  2719. <tr>
  2720. <td class="paramkey"></td>
  2721. <td></td>
  2722. <td class="paramtype">char&#160;</td>
  2723. <td class="paramname"><em>orderingChannel</em>, </td>
  2724. </tr>
  2725. <tr>
  2726. <td class="paramkey"></td>
  2727. <td></td>
  2728. <td class="paramtype">const AddressOrGUID&#160;</td>
  2729. <td class="paramname"><em>systemIdentifier</em>, </td>
  2730. </tr>
  2731. <tr>
  2732. <td class="paramkey"></td>
  2733. <td></td>
  2734. <td class="paramtype">bool&#160;</td>
  2735. <td class="paramname"><em>broadcast</em>, </td>
  2736. </tr>
  2737. <tr>
  2738. <td class="paramkey"></td>
  2739. <td></td>
  2740. <td class="paramtype">uint32_t&#160;</td>
  2741. <td class="paramname"><em>forceReceiptNumber</em> = <code>0</code>&#160;</td>
  2742. </tr>
  2743. <tr>
  2744. <td></td>
  2745. <td>)</td>
  2746. <td></td><td></td>
  2747. </tr>
  2748. </table>
  2749. </td>
  2750. <td class="mlabels-right">
  2751. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2752. </tr>
  2753. </table>
  2754. </div><div class="memdoc">
  2755. <p>Sends a block of data to the specified system that you are connected to. </p>
  2756. <dl class="section note"><dt>Note</dt><dd>This function only works while connected. </dd>
  2757. <dd>
  2758. The first byte should be a message identifier starting at ID_USER_PACKET_ENUM. </dd></dl>
  2759. <dl class="params"><dt>Parameters</dt><dd>
  2760. <table class="params">
  2761. <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Block of data to send. </td></tr>
  2762. <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>Size in bytes of the data to send. </td></tr>
  2763. <tr><td class="paramdir">[in]</td><td class="paramname">priority</td><td>Priority level to send on. See <a class="el" href="PacketPriority_8h.html" title="This file contains enumerations for packet priority and reliability enumerations.">PacketPriority.h</a> </td></tr>
  2764. <tr><td class="paramdir">[in]</td><td class="paramname">reliability</td><td>How reliably to send this data. See <a class="el" href="PacketPriority_8h.html" title="This file contains enumerations for packet priority and reliability enumerations.">PacketPriority.h</a> </td></tr>
  2765. <tr><td class="paramdir">[in]</td><td class="paramname">orderingChannel</td><td>When using ordered or sequenced messages, the channel to order these on. Messages are only ordered relative to other messages on the same stream. </td></tr>
  2766. <tr><td class="paramdir">[in]</td><td class="paramname">systemIdentifier</td><td>Who to send this packet to, or in the case of broadcasting who not to send it to. Pass either a <a class="el" href="structRakNet_1_1SystemAddress.html" title="Network address for a system.">SystemAddress</a> structure or a <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> structure. Use UNASSIGNED_SYSTEM_ADDRESS or to specify none </td></tr>
  2767. <tr><td class="paramdir">[in]</td><td class="paramname">broadcast</td><td>True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. </td></tr>
  2768. <tr><td class="paramdir">[in]</td><td class="paramname">forceReceipt</td><td>If 0, will automatically determine the receipt number to return. If non-zero, will return what you give it. </td></tr>
  2769. </table>
  2770. </dd>
  2771. </dl>
  2772. <dl class="section return"><dt>Returns</dt><dd>0 on bad input. Otherwise a number that identifies this message. If <em>reliability</em> is a type that returns a receipt, on a later call to <a class="el" href="classRakNet_1_1RakPeer.html#a46d90fb903e747f76d63eb3a96543740" title="Gets a message from the incoming message queue.">Receive()</a> you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS with bytes 1-4 inclusive containing this number </dd></dl>
  2773. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a543ec5be9cf5f73f5c8733d1829789f9">RakNet::RakPeerInterface</a>.</p>
  2774. </div>
  2775. </div>
  2776. <a class="anchor" id="ac308204d9c3f5f92ac11b30f1d183d4b"></a>
  2777. <div class="memitem">
  2778. <div class="memproto">
  2779. <table class="mlabels">
  2780. <tr>
  2781. <td class="mlabels-left">
  2782. <table class="memname">
  2783. <tr>
  2784. <td class="memname">uint32_t RakNet::RakPeer::Send </td>
  2785. <td>(</td>
  2786. <td class="paramtype">const <a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *&#160;</td>
  2787. <td class="paramname"><em>bitStream</em>, </td>
  2788. </tr>
  2789. <tr>
  2790. <td class="paramkey"></td>
  2791. <td></td>
  2792. <td class="paramtype"><a class="el" href="PacketPriority_8h.html#a659378374e516180f93640c79f59705c">PacketPriority</a>&#160;</td>
  2793. <td class="paramname"><em>priority</em>, </td>
  2794. </tr>
  2795. <tr>
  2796. <td class="paramkey"></td>
  2797. <td></td>
  2798. <td class="paramtype"><a class="el" href="PacketPriority_8h.html#ae41fa01235e99dced384d137fa874a7e">PacketReliability</a>&#160;</td>
  2799. <td class="paramname"><em>reliability</em>, </td>
  2800. </tr>
  2801. <tr>
  2802. <td class="paramkey"></td>
  2803. <td></td>
  2804. <td class="paramtype">char&#160;</td>
  2805. <td class="paramname"><em>orderingChannel</em>, </td>
  2806. </tr>
  2807. <tr>
  2808. <td class="paramkey"></td>
  2809. <td></td>
  2810. <td class="paramtype">const AddressOrGUID&#160;</td>
  2811. <td class="paramname"><em>systemIdentifier</em>, </td>
  2812. </tr>
  2813. <tr>
  2814. <td class="paramkey"></td>
  2815. <td></td>
  2816. <td class="paramtype">bool&#160;</td>
  2817. <td class="paramname"><em>broadcast</em>, </td>
  2818. </tr>
  2819. <tr>
  2820. <td class="paramkey"></td>
  2821. <td></td>
  2822. <td class="paramtype">uint32_t&#160;</td>
  2823. <td class="paramname"><em>forceReceiptNumber</em> = <code>0</code>&#160;</td>
  2824. </tr>
  2825. <tr>
  2826. <td></td>
  2827. <td>)</td>
  2828. <td></td><td></td>
  2829. </tr>
  2830. </table>
  2831. </td>
  2832. <td class="mlabels-right">
  2833. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2834. </tr>
  2835. </table>
  2836. </div><div class="memdoc">
  2837. <p>Sends a block of data to the specified system that you are connected to. </p>
  2838. <p>Same as the above version, but takes a <a class="el" href="classRakNet_1_1BitStream.html">BitStream</a> as input. </p>
  2839. <dl class="params"><dt>Parameters</dt><dd>
  2840. <table class="params">
  2841. <tr><td class="paramdir">[in]</td><td class="paramname">bitStream</td><td>Bitstream to send </td></tr>
  2842. <tr><td class="paramdir">[in]</td><td class="paramname">priority</td><td>Priority level to send on. See <a class="el" href="PacketPriority_8h.html" title="This file contains enumerations for packet priority and reliability enumerations.">PacketPriority.h</a> </td></tr>
  2843. <tr><td class="paramdir">[in]</td><td class="paramname">reliability</td><td>How reliably to send this data. See <a class="el" href="PacketPriority_8h.html" title="This file contains enumerations for packet priority and reliability enumerations.">PacketPriority.h</a> </td></tr>
  2844. <tr><td class="paramdir">[in]</td><td class="paramname">orderingChannel</td><td>Channel to order the messages on, when using ordered or sequenced messages. Messages are only ordered relative to other messages on the same stream. </td></tr>
  2845. <tr><td class="paramdir">[in]</td><td class="paramname">systemIdentifier</td><td>System Address or <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> to send this packet to, or in the case of broadcasting, the address not to send it to. Use UNASSIGNED_SYSTEM_ADDRESS to specify none. </td></tr>
  2846. <tr><td class="paramdir">[in]</td><td class="paramname">broadcast</td><td>True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. </td></tr>
  2847. <tr><td class="paramdir">[in]</td><td class="paramname">forceReceipt</td><td>If 0, will automatically determine the receipt number to return. If non-zero, will return what you give it. </td></tr>
  2848. </table>
  2849. </dd>
  2850. </dl>
  2851. <dl class="section return"><dt>Returns</dt><dd>0 on bad input. Otherwise a number that identifies this message. If <em>reliability</em> is a type that returns a receipt, on a later call to <a class="el" href="classRakNet_1_1RakPeer.html#a46d90fb903e747f76d63eb3a96543740" title="Gets a message from the incoming message queue.">Receive()</a> you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS with bytes 1-4 inclusive containing this number </dd></dl>
  2852. <dl class="section note"><dt>Note</dt><dd>COMMON MISTAKE: When writing the first byte, bitStream-&gt;Write((unsigned char) ID_MY_TYPE) be sure it is casted to a byte, and you are not writing a 4 byte enumeration. </dd></dl>
  2853. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a6d9a5415556a9c138854cc05c707b8e7">RakNet::RakPeerInterface</a>.</p>
  2854. </div>
  2855. </div>
  2856. <a class="anchor" id="a68a9c6f4db253074f3775d164e39195f"></a>
  2857. <div class="memitem">
  2858. <div class="memproto">
  2859. <table class="mlabels">
  2860. <tr>
  2861. <td class="mlabels-left">
  2862. <table class="memname">
  2863. <tr>
  2864. <td class="memname">uint32_t RakNet::RakPeer::SendList </td>
  2865. <td>(</td>
  2866. <td class="paramtype">const char **&#160;</td>
  2867. <td class="paramname"><em>data</em>, </td>
  2868. </tr>
  2869. <tr>
  2870. <td class="paramkey"></td>
  2871. <td></td>
  2872. <td class="paramtype">const int *&#160;</td>
  2873. <td class="paramname"><em>lengths</em>, </td>
  2874. </tr>
  2875. <tr>
  2876. <td class="paramkey"></td>
  2877. <td></td>
  2878. <td class="paramtype">const int&#160;</td>
  2879. <td class="paramname"><em>numParameters</em>, </td>
  2880. </tr>
  2881. <tr>
  2882. <td class="paramkey"></td>
  2883. <td></td>
  2884. <td class="paramtype"><a class="el" href="PacketPriority_8h.html#a659378374e516180f93640c79f59705c">PacketPriority</a>&#160;</td>
  2885. <td class="paramname"><em>priority</em>, </td>
  2886. </tr>
  2887. <tr>
  2888. <td class="paramkey"></td>
  2889. <td></td>
  2890. <td class="paramtype"><a class="el" href="PacketPriority_8h.html#ae41fa01235e99dced384d137fa874a7e">PacketReliability</a>&#160;</td>
  2891. <td class="paramname"><em>reliability</em>, </td>
  2892. </tr>
  2893. <tr>
  2894. <td class="paramkey"></td>
  2895. <td></td>
  2896. <td class="paramtype">char&#160;</td>
  2897. <td class="paramname"><em>orderingChannel</em>, </td>
  2898. </tr>
  2899. <tr>
  2900. <td class="paramkey"></td>
  2901. <td></td>
  2902. <td class="paramtype">const AddressOrGUID&#160;</td>
  2903. <td class="paramname"><em>systemIdentifier</em>, </td>
  2904. </tr>
  2905. <tr>
  2906. <td class="paramkey"></td>
  2907. <td></td>
  2908. <td class="paramtype">bool&#160;</td>
  2909. <td class="paramname"><em>broadcast</em>, </td>
  2910. </tr>
  2911. <tr>
  2912. <td class="paramkey"></td>
  2913. <td></td>
  2914. <td class="paramtype">uint32_t&#160;</td>
  2915. <td class="paramname"><em>forceReceiptNumber</em> = <code>0</code>&#160;</td>
  2916. </tr>
  2917. <tr>
  2918. <td></td>
  2919. <td>)</td>
  2920. <td></td><td></td>
  2921. </tr>
  2922. </table>
  2923. </td>
  2924. <td class="mlabels-right">
  2925. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2926. </tr>
  2927. </table>
  2928. </div><div class="memdoc">
  2929. <p>Sends multiple blocks of data, concatenating them automatically. </p>
  2930. <p>This is equivalent to: <a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> bs; bs.WriteAlignedBytes(block1, blockLength1); bs.WriteAlignedBytes(block2, blockLength2); bs.WriteAlignedBytes(block3, blockLength3); Send(&amp;bs, ...)</p>
  2931. <p>This function only works when connected. </p>
  2932. <dl class="params"><dt>Parameters</dt><dd>
  2933. <table class="params">
  2934. <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>An array of pointers to blocks of data </td></tr>
  2935. <tr><td class="paramdir">[in]</td><td class="paramname">lengths</td><td>An array of integers indicating the length of each block of data </td></tr>
  2936. <tr><td class="paramdir">[in]</td><td class="paramname">numParameters</td><td>Length of the arrays data and lengths </td></tr>
  2937. <tr><td class="paramdir">[in]</td><td class="paramname">priority</td><td>Priority level to send on. See <a class="el" href="PacketPriority_8h.html" title="This file contains enumerations for packet priority and reliability enumerations.">PacketPriority.h</a> </td></tr>
  2938. <tr><td class="paramdir">[in]</td><td class="paramname">reliability</td><td>How reliably to send this data. See <a class="el" href="PacketPriority_8h.html" title="This file contains enumerations for packet priority and reliability enumerations.">PacketPriority.h</a> </td></tr>
  2939. <tr><td class="paramdir">[in]</td><td class="paramname">orderingChannel</td><td>Channel to order the messages on, when using ordered or sequenced messages. Messages are only ordered relative to other messages on the same stream. </td></tr>
  2940. <tr><td class="paramdir">[in]</td><td class="paramname">systemIdentifier</td><td>System Address or <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> to send this packet to, or in the case of broadcasting, the address not to send it to. Use UNASSIGNED_SYSTEM_ADDRESS to specify none. </td></tr>
  2941. <tr><td class="paramdir">[in]</td><td class="paramname">broadcast</td><td>True to send this packet to all connected systems. If true, then systemAddress specifies who not to send the packet to. </td></tr>
  2942. <tr><td class="paramdir">[in]</td><td class="paramname">forceReceipt</td><td>If 0, will automatically determine the receipt number to return. If non-zero, will return what you give it. </td></tr>
  2943. </table>
  2944. </dd>
  2945. </dl>
  2946. <dl class="section return"><dt>Returns</dt><dd>0 on bad input. Otherwise a number that identifies this message. If <em>reliability</em> is a type that returns a receipt, on a later call to <a class="el" href="classRakNet_1_1RakPeer.html#a46d90fb903e747f76d63eb3a96543740" title="Gets a message from the incoming message queue.">Receive()</a> you will get ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS with bytes 1-4 inclusive containing this number </dd></dl>
  2947. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a508111f60de06beb55a65a2b811d557c">RakNet::RakPeerInterface</a>.</p>
  2948. </div>
  2949. </div>
  2950. <a class="anchor" id="ac3f1dcedc63156184962aa184ba69ed2"></a>
  2951. <div class="memitem">
  2952. <div class="memproto">
  2953. <table class="mlabels">
  2954. <tr>
  2955. <td class="mlabels-left">
  2956. <table class="memname">
  2957. <tr>
  2958. <td class="memname">void RakNet::RakPeer::SendLoopback </td>
  2959. <td>(</td>
  2960. <td class="paramtype">const char *&#160;</td>
  2961. <td class="paramname"><em>data</em>, </td>
  2962. </tr>
  2963. <tr>
  2964. <td class="paramkey"></td>
  2965. <td></td>
  2966. <td class="paramtype">const int&#160;</td>
  2967. <td class="paramname"><em>length</em>&#160;</td>
  2968. </tr>
  2969. <tr>
  2970. <td></td>
  2971. <td>)</td>
  2972. <td></td><td></td>
  2973. </tr>
  2974. </table>
  2975. </td>
  2976. <td class="mlabels-right">
  2977. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  2978. </tr>
  2979. </table>
  2980. </div><div class="memdoc">
  2981. <p>"Send" to yourself rather than a remote system. </p>
  2982. <p>The message will be processed through the plugins and returned to the game as usual. This function works anytime </p>
  2983. <dl class="section note"><dt>Note</dt><dd>The first byte should be a message identifier starting at ID_USER_PACKET_ENUM </dd></dl>
  2984. <dl class="params"><dt>Parameters</dt><dd>
  2985. <table class="params">
  2986. <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Block of data to send. </td></tr>
  2987. <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>Size in bytes of the data to send. </td></tr>
  2988. </table>
  2989. </dd>
  2990. </dl>
  2991. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#ab8e39273dd7fb89d4b29a01bca32f82c">RakNet::RakPeerInterface</a>.</p>
  2992. </div>
  2993. </div>
  2994. <a class="anchor" id="a86b8b2a8d2e4edc2c1d89f6bde8b9f28"></a>
  2995. <div class="memitem">
  2996. <div class="memproto">
  2997. <table class="mlabels">
  2998. <tr>
  2999. <td class="mlabels-left">
  3000. <table class="memname">
  3001. <tr>
  3002. <td class="memname">void RakNet::RakPeer::SendTTL </td>
  3003. <td>(</td>
  3004. <td class="paramtype">const char *&#160;</td>
  3005. <td class="paramname"><em>host</em>, </td>
  3006. </tr>
  3007. <tr>
  3008. <td class="paramkey"></td>
  3009. <td></td>
  3010. <td class="paramtype">unsigned short&#160;</td>
  3011. <td class="paramname"><em>remotePort</em>, </td>
  3012. </tr>
  3013. <tr>
  3014. <td class="paramkey"></td>
  3015. <td></td>
  3016. <td class="paramtype">int&#160;</td>
  3017. <td class="paramname"><em>ttl</em>, </td>
  3018. </tr>
  3019. <tr>
  3020. <td class="paramkey"></td>
  3021. <td></td>
  3022. <td class="paramtype">unsigned&#160;</td>
  3023. <td class="paramname"><em>connectionSocketIndex</em> = <code>0</code>&#160;</td>
  3024. </tr>
  3025. <tr>
  3026. <td></td>
  3027. <td>)</td>
  3028. <td></td><td></td>
  3029. </tr>
  3030. </table>
  3031. </td>
  3032. <td class="mlabels-right">
  3033. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  3034. </tr>
  3035. </table>
  3036. </div><div class="memdoc">
  3037. <p>Send a message to a host, with the IP socket option TTL set to 3. </p>
  3038. <p>This message will not reach the host, but will open the router. </p>
  3039. <dl class="params"><dt>Parameters</dt><dd>
  3040. <table class="params">
  3041. <tr><td class="paramdir">[in]</td><td class="paramname">host</td><td>The address of the remote host in dotted notation. </td></tr>
  3042. <tr><td class="paramdir">[in]</td><td class="paramname">remotePort</td><td>The port number to send to. </td></tr>
  3043. <tr><td class="paramdir">[in]</td><td class="paramname">ttl</td><td>Max hops of datagram, set to 3 </td></tr>
  3044. <tr><td class="paramdir">[in]</td><td class="paramname">connectionSocketIndex</td><td>userConnectionSocketIndex. </td></tr>
  3045. </table>
  3046. </dd>
  3047. </dl>
  3048. <dl class="section remark"><dt>Remarks</dt><dd>Used for NAT-Punchthrough </dd></dl>
  3049. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a700a2c9bc1414da194a35076af3b56e0">RakNet::RakPeerInterface</a>.</p>
  3050. </div>
  3051. </div>
  3052. <a class="anchor" id="a959a1dc3d239d3c5114bc781144d3b73"></a>
  3053. <div class="memitem">
  3054. <div class="memproto">
  3055. <table class="mlabels">
  3056. <tr>
  3057. <td class="mlabels-left">
  3058. <table class="memname">
  3059. <tr>
  3060. <td class="memname">virtual void RakNet::RakPeer::SetIncomingDatagramEventHandler </td>
  3061. <td>(</td>
  3062. <td class="paramtype">bool(*)(RNS2RecvStruct *)&#160;</td>
  3063. <td class="paramname"><em>_incomingDatagramEventHandler</em></td><td>)</td>
  3064. <td></td>
  3065. </tr>
  3066. </table>
  3067. </td>
  3068. <td class="mlabels-right">
  3069. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  3070. </tr>
  3071. </table>
  3072. </div><div class="memdoc">
  3073. <p>Set a C callback to be called whenever a datagram arrives Return true from the callback to have <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> handle the datagram. Return false and <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> will ignore the datagram. This can be used to filter incoming datagrams by system, or to share a recvfrom socket with <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> RNS2RecvStruct will only remain valid for the duration of the call </p>
  3074. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a6b70ebc4e2852362b366e8738624ec44">RakNet::RakPeerInterface</a>.</p>
  3075. </div>
  3076. </div>
  3077. <a class="anchor" id="a6d4071bbbf128604c94a27c46fa7b9ce"></a>
  3078. <div class="memitem">
  3079. <div class="memproto">
  3080. <table class="mlabels">
  3081. <tr>
  3082. <td class="mlabels-left">
  3083. <table class="memname">
  3084. <tr>
  3085. <td class="memname">void RakNet::RakPeer::SetIncomingPassword </td>
  3086. <td>(</td>
  3087. <td class="paramtype">const char *&#160;</td>
  3088. <td class="paramname"><em>passwordData</em>, </td>
  3089. </tr>
  3090. <tr>
  3091. <td class="paramkey"></td>
  3092. <td></td>
  3093. <td class="paramtype">int&#160;</td>
  3094. <td class="paramname"><em>passwordDataLength</em>&#160;</td>
  3095. </tr>
  3096. <tr>
  3097. <td></td>
  3098. <td>)</td>
  3099. <td></td><td></td>
  3100. </tr>
  3101. </table>
  3102. </td>
  3103. <td class="mlabels-right">
  3104. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  3105. </tr>
  3106. </table>
  3107. </div><div class="memdoc">
  3108. <p>Sets the password for the incoming connections. </p>
  3109. <p>The password must match in the call to Connect (defaults to none). Pass 0 to passwordData to specify no password. This is a way to set a low level password for all incoming connections. To selectively reject connections, implement your own scheme using <a class="el" href="classRakNet_1_1RakPeer.html#a95e3806fce8552e322236abcf105cbf9" title="Close the connection to another host (if we initiated the connection it will disconnect, if they did it will kick them out).">CloseConnection()</a> to remove unwanted connections. </p>
  3110. <dl class="params"><dt>Parameters</dt><dd>
  3111. <table class="params">
  3112. <tr><td class="paramdir">[in]</td><td class="paramname">passwordData</td><td>A data block that incoming connections must match. This can be just a password, or can be a stream of data. Specify 0 for no password data </td></tr>
  3113. <tr><td class="paramdir">[in]</td><td class="paramname">passwordDataLength</td><td>The length in bytes of passwordData </td></tr>
  3114. </table>
  3115. </dd>
  3116. </dl>
  3117. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#ad18a28a99420006d020125eea1ded4ed">RakNet::RakPeerInterface</a>.</p>
  3118. </div>
  3119. </div>
  3120. <a class="anchor" id="ad02c3a4e4c4063771fb47fe20d4b47af"></a>
  3121. <div class="memitem">
  3122. <div class="memproto">
  3123. <table class="mlabels">
  3124. <tr>
  3125. <td class="mlabels-left">
  3126. <table class="memname">
  3127. <tr>
  3128. <td class="memname">void RakNet::RakPeer::SetInternalID </td>
  3129. <td>(</td>
  3130. <td class="paramtype"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td>
  3131. <td class="paramname"><em>systemAddress</em>, </td>
  3132. </tr>
  3133. <tr>
  3134. <td class="paramkey"></td>
  3135. <td></td>
  3136. <td class="paramtype">int&#160;</td>
  3137. <td class="paramname"><em>index</em> = <code>0</code>&#160;</td>
  3138. </tr>
  3139. <tr>
  3140. <td></td>
  3141. <td>)</td>
  3142. <td></td><td></td>
  3143. </tr>
  3144. </table>
  3145. </td>
  3146. <td class="mlabels-right">
  3147. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  3148. </tr>
  3149. </table>
  3150. </div><div class="memdoc">
  3151. <p>Sets your internal IP address, for platforms that do not support reading it, or to override a value. </p>
  3152. <dl class="params"><dt>Parameters</dt><dd>
  3153. <table class="params">
  3154. <tr><td class="paramdir">[in]</td><td class="paramname">systemAddress.</td><td>The address to set. Use <a class="el" href="structRakNet_1_1SystemAddress.html#ae1ad8bd3b4f24478980437476391d6ab">SystemAddress::FromString()</a> if you want to use a dotted string </td></tr>
  3155. <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>When you have multiple internal IDs, which index to set? </td></tr>
  3156. </table>
  3157. </dd>
  3158. </dl>
  3159. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#ac9f163bc4b8b89db10c3f251793e0aca">RakNet::RakPeerInterface</a>.</p>
  3160. </div>
  3161. </div>
  3162. <a class="anchor" id="ac5e80ab105ac8124d4ee5f94bd1b316a"></a>
  3163. <div class="memitem">
  3164. <div class="memproto">
  3165. <table class="mlabels">
  3166. <tr>
  3167. <td class="mlabels-left">
  3168. <table class="memname">
  3169. <tr>
  3170. <td class="memname">void RakNet::RakPeer::SetLimitIPConnectionFrequency </td>
  3171. <td>(</td>
  3172. <td class="paramtype">bool&#160;</td>
  3173. <td class="paramname"><em>b</em></td><td>)</td>
  3174. <td></td>
  3175. </tr>
  3176. </table>
  3177. </td>
  3178. <td class="mlabels-right">
  3179. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  3180. </tr>
  3181. </table>
  3182. </div><div class="memdoc">
  3183. <p>Enable or disable allowing frequent connections from the same IP adderss. </p>
  3184. <p>This is a security measure which is disabled by default, but can be set to true to prevent attackers from using up all connection slots. </p>
  3185. <dl class="params"><dt>Parameters</dt><dd>
  3186. <table class="params">
  3187. <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>True to limit connections from the same ip to at most 1 per 100 milliseconds. </td></tr>
  3188. </table>
  3189. </dd>
  3190. </dl>
  3191. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a1c7d098a1d9a4613f051ae3627831af6">RakNet::RakPeerInterface</a>.</p>
  3192. </div>
  3193. </div>
  3194. <a class="anchor" id="a8ed81856dd81ec1cd00e17fafedee0a7"></a>
  3195. <div class="memitem">
  3196. <div class="memproto">
  3197. <table class="mlabels">
  3198. <tr>
  3199. <td class="mlabels-left">
  3200. <table class="memname">
  3201. <tr>
  3202. <td class="memname">void RakNet::RakPeer::SetMaximumIncomingConnections </td>
  3203. <td>(</td>
  3204. <td class="paramtype">unsigned short&#160;</td>
  3205. <td class="paramname"><em>numberAllowed</em></td><td>)</td>
  3206. <td></td>
  3207. </tr>
  3208. </table>
  3209. </td>
  3210. <td class="mlabels-right">
  3211. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  3212. </tr>
  3213. </table>
  3214. </div><div class="memdoc">
  3215. <p>Sets the maximum number of incoming connections allowed. </p>
  3216. <p>If the number of incoming connections is less than the number of players currently connected, no more players will be allowed to connect. If this is greater than the maximum number of peers allowed, it will be reduced to the maximum number of peers allowed.</p>
  3217. <p>Defaults to 0, meaning by default, nobody can connect to you </p>
  3218. <dl class="params"><dt>Parameters</dt><dd>
  3219. <table class="params">
  3220. <tr><td class="paramdir">[in]</td><td class="paramname">numberAllowed</td><td>Maximum number of incoming connections allowed. </td></tr>
  3221. </table>
  3222. </dd>
  3223. </dl>
  3224. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a1f279ee0d3578de483126f6cfef282f4">RakNet::RakPeerInterface</a>.</p>
  3225. </div>
  3226. </div>
  3227. <a class="anchor" id="abb8d47e41f9bc523a555d8f1bc774e4a"></a>
  3228. <div class="memitem">
  3229. <div class="memproto">
  3230. <table class="mlabels">
  3231. <tr>
  3232. <td class="mlabels-left">
  3233. <table class="memname">
  3234. <tr>
  3235. <td class="memname">void RakNet::RakPeer::SetOccasionalPing </td>
  3236. <td>(</td>
  3237. <td class="paramtype">bool&#160;</td>
  3238. <td class="paramname"><em>doPing</em></td><td>)</td>
  3239. <td></td>
  3240. </tr>
  3241. </table>
  3242. </td>
  3243. <td class="mlabels-right">
  3244. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  3245. </tr>
  3246. </table>
  3247. </div><div class="memdoc">
  3248. <p>Ping the remote systems every so often, or not. Can be called anytime. By default this is true. Recommended to leave on, because congestion control uses it to determine how often to resend lost packets. It would be true by default to prevent timestamp drift, since in the event of a clock spike, the timestamp deltas would no longer be accurate </p>
  3249. <dl class="params"><dt>Parameters</dt><dd>
  3250. <table class="params">
  3251. <tr><td class="paramdir">[in]</td><td class="paramname">doPing</td><td>True to start occasional pings. False to stop them. </td></tr>
  3252. </table>
  3253. </dd>
  3254. </dl>
  3255. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#afdc6e658512d2f01d6bb211758721f21">RakNet::RakPeerInterface</a>.</p>
  3256. </div>
  3257. </div>
  3258. <a class="anchor" id="a2a534f1c0bb56b3c5b9b56ca8839917c"></a>
  3259. <div class="memitem">
  3260. <div class="memproto">
  3261. <table class="mlabels">
  3262. <tr>
  3263. <td class="mlabels-left">
  3264. <table class="memname">
  3265. <tr>
  3266. <td class="memname">void RakNet::RakPeer::SetOfflinePingResponse </td>
  3267. <td>(</td>
  3268. <td class="paramtype">const char *&#160;</td>
  3269. <td class="paramname"><em>data</em>, </td>
  3270. </tr>
  3271. <tr>
  3272. <td class="paramkey"></td>
  3273. <td></td>
  3274. <td class="paramtype">const unsigned int&#160;</td>
  3275. <td class="paramname"><em>length</em>&#160;</td>
  3276. </tr>
  3277. <tr>
  3278. <td></td>
  3279. <td>)</td>
  3280. <td></td><td></td>
  3281. </tr>
  3282. </table>
  3283. </td>
  3284. <td class="mlabels-right">
  3285. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  3286. </tr>
  3287. </table>
  3288. </div><div class="memdoc">
  3289. <p>Sets the data to send along with a LAN server discovery or offline ping reply. </p>
  3290. <dl class="params"><dt>Parameters</dt><dd>
  3291. <table class="params">
  3292. <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Block of data to send, or 0 for none </td></tr>
  3293. <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>Length of the data in bytes, or 0 for none </td></tr>
  3294. </table>
  3295. </dd>
  3296. </dl>
  3297. <dl class="section note"><dt>Note</dt><dd><em>length</em> should be under 400 bytes, as a security measure against flood attacks </dd></dl>
  3298. <dl class="section see"><dt>See Also</dt><dd>Ping.cpp </dd></dl>
  3299. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a40b198325a1a4f4a1ff3b1a1741b89eb">RakNet::RakPeerInterface</a>.</p>
  3300. </div>
  3301. </div>
  3302. <a class="anchor" id="a9c67c61c6eebed7a4ed8bc2ea2813b56"></a>
  3303. <div class="memitem">
  3304. <div class="memproto">
  3305. <table class="mlabels">
  3306. <tr>
  3307. <td class="mlabels-left">
  3308. <table class="memname">
  3309. <tr>
  3310. <td class="memname">virtual void RakNet::RakPeer::SetPerConnectionOutgoingBandwidthLimit </td>
  3311. <td>(</td>
  3312. <td class="paramtype">unsigned&#160;</td>
  3313. <td class="paramname"><em>maxBitsPerSecond</em></td><td>)</td>
  3314. <td></td>
  3315. </tr>
  3316. </table>
  3317. </td>
  3318. <td class="mlabels-right">
  3319. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  3320. </tr>
  3321. </table>
  3322. </div><div class="memdoc">
  3323. <p>Limits how much outgoing bandwidth can be sent per-connection. This limit does not apply to the sum of all connections! Exceeding the limit queues up outgoing traffic </p>
  3324. <dl class="params"><dt>Parameters</dt><dd>
  3325. <table class="params">
  3326. <tr><td class="paramdir">[in]</td><td class="paramname">maxBitsPerSecond</td><td>Maximum bits per second to send. Use 0 for unlimited (default). Once set, it takes effect immedately and persists until called again. </td></tr>
  3327. </table>
  3328. </dd>
  3329. </dl>
  3330. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a95daeb743853a4406182e47668c0f33b">RakNet::RakPeerInterface</a>.</p>
  3331. </div>
  3332. </div>
  3333. <a class="anchor" id="a35e89d9813d6f6e7f2144a6a0437a33b"></a>
  3334. <div class="memitem">
  3335. <div class="memproto">
  3336. <table class="mlabels">
  3337. <tr>
  3338. <td class="mlabels-left">
  3339. <table class="memname">
  3340. <tr>
  3341. <td class="memname">void RakNet::RakPeer::SetSplitMessageProgressInterval </td>
  3342. <td>(</td>
  3343. <td class="paramtype">int&#160;</td>
  3344. <td class="paramname"><em>interval</em></td><td>)</td>
  3345. <td></td>
  3346. </tr>
  3347. </table>
  3348. </td>
  3349. <td class="mlabels-right">
  3350. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  3351. </tr>
  3352. </table>
  3353. </div><div class="memdoc">
  3354. <p>Controls how often to return ID_DOWNLOAD_PROGRESS for large message downloads. </p>
  3355. <p>ID_DOWNLOAD_PROGRESS is returned to indicate a new partial message chunk, roughly the MTU size, has arrived. As it can be slow or cumbersome to get this notification for every chunk, you can set the interval at which it is returned. Defaults to 0 (never return this notification). </p>
  3356. <dl class="params"><dt>Parameters</dt><dd>
  3357. <table class="params">
  3358. <tr><td class="paramdir">[in]</td><td class="paramname">interval</td><td>How many messages to use as an interval before a download progress notification is returned. </td></tr>
  3359. </table>
  3360. </dd>
  3361. </dl>
  3362. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a4112544503b05a7b7dd2dd56adfbc648">RakNet::RakPeerInterface</a>.</p>
  3363. </div>
  3364. </div>
  3365. <a class="anchor" id="a46305b16342c6f5ec1c1a66623032310"></a>
  3366. <div class="memitem">
  3367. <div class="memproto">
  3368. <table class="mlabels">
  3369. <tr>
  3370. <td class="mlabels-left">
  3371. <table class="memname">
  3372. <tr>
  3373. <td class="memname">void RakNet::RakPeer::SetTimeoutTime </td>
  3374. <td>(</td>
  3375. <td class="paramtype">RakNet::TimeMS&#160;</td>
  3376. <td class="paramname"><em>timeMS</em>, </td>
  3377. </tr>
  3378. <tr>
  3379. <td class="paramkey"></td>
  3380. <td></td>
  3381. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td>
  3382. <td class="paramname"><em>target</em>&#160;</td>
  3383. </tr>
  3384. <tr>
  3385. <td></td>
  3386. <td>)</td>
  3387. <td></td><td></td>
  3388. </tr>
  3389. </table>
  3390. </td>
  3391. <td class="mlabels-right">
  3392. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  3393. </tr>
  3394. </table>
  3395. </div><div class="memdoc">
  3396. <p>Set the time, in MS, to use before considering ourselves disconnected after not being able to deliver a reliable message. </p>
  3397. <p>Set the time, in MS, to use before considering ourselves disconnected after not being able to deliver a reliable message. Default time is 10,000 or 10 seconds in release and 30,000 or 30 seconds in debug. Do not set different values for different computers that are connected to each other, or you won't be able to reconnect after ID_CONNECTION_LOST </p>
  3398. <dl class="params"><dt>Parameters</dt><dd>
  3399. <table class="params">
  3400. <tr><td class="paramdir">[in]</td><td class="paramname">timeMS</td><td>Time, in MS </td></tr>
  3401. <tr><td class="paramdir">[in]</td><td class="paramname">target</td><td><a class="el" href="structRakNet_1_1SystemAddress.html" title="Network address for a system.">SystemAddress</a> structure of the target system. Pass UNASSIGNED_SYSTEM_ADDRESS for all systems. </td></tr>
  3402. </table>
  3403. </dd>
  3404. </dl>
  3405. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a49d2993d5db12a62ce88dc89700c0880">RakNet::RakPeerInterface</a>.</p>
  3406. </div>
  3407. </div>
  3408. <a class="anchor" id="a739faf1ea8c90aded5e11bfc105b956e"></a>
  3409. <div class="memitem">
  3410. <div class="memproto">
  3411. <table class="mlabels">
  3412. <tr>
  3413. <td class="mlabels-left">
  3414. <table class="memname">
  3415. <tr>
  3416. <td class="memname">void RakNet::RakPeer::SetUnreliableTimeout </td>
  3417. <td>(</td>
  3418. <td class="paramtype">RakNet::TimeMS&#160;</td>
  3419. <td class="paramname"><em>timeoutMS</em></td><td>)</td>
  3420. <td></td>
  3421. </tr>
  3422. </table>
  3423. </td>
  3424. <td class="mlabels-right">
  3425. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  3426. </tr>
  3427. </table>
  3428. </div><div class="memdoc">
  3429. <p>Set how long to wait before giving up on sending an unreliable message. Useful if the network is clogged up. Set to 0 or less to never timeout. Defaults to 0. </p>
  3430. <dl class="params"><dt>Parameters</dt><dd>
  3431. <table class="params">
  3432. <tr><td class="paramdir">[in]</td><td class="paramname">timeoutMS</td><td>How many ms to wait before simply not sending an unreliable message. </td></tr>
  3433. </table>
  3434. </dd>
  3435. </dl>
  3436. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a87db4b6410fce078080400f8d58328ed">RakNet::RakPeerInterface</a>.</p>
  3437. </div>
  3438. </div>
  3439. <a class="anchor" id="a21f59d33d16332dd8dd96d800c33d06e"></a>
  3440. <div class="memitem">
  3441. <div class="memproto">
  3442. <table class="mlabels">
  3443. <tr>
  3444. <td class="mlabels-left">
  3445. <table class="memname">
  3446. <tr>
  3447. <td class="memname">virtual void RakNet::RakPeer::SetUserUpdateThread </td>
  3448. <td>(</td>
  3449. <td class="paramtype">void(*)(<a class="el" href="classRakNet_1_1RakPeerInterface.html">RakPeerInterface</a> *, void *)&#160;</td>
  3450. <td class="paramname"><em>_userUpdateThreadPtr</em>, </td>
  3451. </tr>
  3452. <tr>
  3453. <td class="paramkey"></td>
  3454. <td></td>
  3455. <td class="paramtype">void *&#160;</td>
  3456. <td class="paramname"><em>_userUpdateThreadData</em>&#160;</td>
  3457. </tr>
  3458. <tr>
  3459. <td></td>
  3460. <td>)</td>
  3461. <td></td><td></td>
  3462. </tr>
  3463. </table>
  3464. </td>
  3465. <td class="mlabels-right">
  3466. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  3467. </tr>
  3468. </table>
  3469. </div><div class="memdoc">
  3470. <p>If you need code to run in the same thread as <a class="el" href="namespaceRakNet.html" title="Simple class to send changes between directories. In essence, a simple autopatcher that can be used f...">RakNet</a>'s update thread, this function can be used for that </p>
  3471. <dl class="params"><dt>Parameters</dt><dd>
  3472. <table class="params">
  3473. <tr><td class="paramdir">[in]</td><td class="paramname">_userUpdateThreadPtr</td><td>C callback function </td></tr>
  3474. <tr><td class="paramdir">[in]</td><td class="paramname">_userUpdateThreadData</td><td>Passed to C callback function </td></tr>
  3475. </table>
  3476. </dd>
  3477. </dl>
  3478. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a0832004c529aa9a0844b61eaf1374b3c">RakNet::RakPeerInterface</a>.</p>
  3479. </div>
  3480. </div>
  3481. <a class="anchor" id="a9251492e6d3d0538111c1d90be554b2d"></a>
  3482. <div class="memitem">
  3483. <div class="memproto">
  3484. <table class="mlabels">
  3485. <tr>
  3486. <td class="mlabels-left">
  3487. <table class="memname">
  3488. <tr>
  3489. <td class="memname">void RakNet::RakPeer::ShiftIncomingTimestamp </td>
  3490. <td>(</td>
  3491. <td class="paramtype">unsigned char *&#160;</td>
  3492. <td class="paramname"><em>data</em>, </td>
  3493. </tr>
  3494. <tr>
  3495. <td class="paramkey"></td>
  3496. <td></td>
  3497. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> &amp;&#160;</td>
  3498. <td class="paramname"><em>systemAddress</em>&#160;</td>
  3499. </tr>
  3500. <tr>
  3501. <td></td>
  3502. <td>)</td>
  3503. <td></td><td> const</td>
  3504. </tr>
  3505. </table>
  3506. </td>
  3507. <td class="mlabels-right">
  3508. <span class="mlabels"><span class="mlabel">protected</span></span> </td>
  3509. </tr>
  3510. </table>
  3511. </div><div class="memdoc">
  3512. <p>Adjust the timestamp of the incoming packet to be relative to this system. </p>
  3513. <dl class="params"><dt>Parameters</dt><dd>
  3514. <table class="params">
  3515. <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Data in the incoming packet. </td></tr>
  3516. <tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>Sender of the incoming packet. </td></tr>
  3517. </table>
  3518. </dd>
  3519. </dl>
  3520. </div>
  3521. </div>
  3522. <a class="anchor" id="a0a6d4c16c9b489574393a39ab2f99990"></a>
  3523. <div class="memitem">
  3524. <div class="memproto">
  3525. <table class="mlabels">
  3526. <tr>
  3527. <td class="mlabels-left">
  3528. <table class="memname">
  3529. <tr>
  3530. <td class="memname">void RakNet::RakPeer::Shutdown </td>
  3531. <td>(</td>
  3532. <td class="paramtype">unsigned int&#160;</td>
  3533. <td class="paramname"><em>blockDuration</em>, </td>
  3534. </tr>
  3535. <tr>
  3536. <td class="paramkey"></td>
  3537. <td></td>
  3538. <td class="paramtype">unsigned char&#160;</td>
  3539. <td class="paramname"><em>orderingChannel</em> = <code>0</code>, </td>
  3540. </tr>
  3541. <tr>
  3542. <td class="paramkey"></td>
  3543. <td></td>
  3544. <td class="paramtype"><a class="el" href="PacketPriority_8h.html#a659378374e516180f93640c79f59705c">PacketPriority</a>&#160;</td>
  3545. <td class="paramname"><em>disconnectionNotificationPriority</em> = <code><a class="el" href="PacketPriority_8h.html#a659378374e516180f93640c79f59705cadb8ee22a232a2787f32ba28da55c43c1">LOW_PRIORITY</a></code>&#160;</td>
  3546. </tr>
  3547. <tr>
  3548. <td></td>
  3549. <td>)</td>
  3550. <td></td><td></td>
  3551. </tr>
  3552. </table>
  3553. </td>
  3554. <td class="mlabels-right">
  3555. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  3556. </tr>
  3557. </table>
  3558. </div><div class="memdoc">
  3559. <p>Stops the network threads and closes all connections. </p>
  3560. <dl class="params"><dt>Parameters</dt><dd>
  3561. <table class="params">
  3562. <tr><td class="paramdir">[in]</td><td class="paramname">blockDuration</td><td>Wait time(milli seconds) for all remaining messages to go out, including ID_DISCONNECTION_NOTIFICATION. If 0, it doesn't wait at all. </td></tr>
  3563. <tr><td class="paramdir">[in]</td><td class="paramname">orderingChannel</td><td>Channel on which ID_DISCONNECTION_NOTIFICATION will be sent, if blockDuration &gt; 0. </td></tr>
  3564. <tr><td class="paramdir">[in]</td><td class="paramname">disconnectionNotificationPriority</td><td>Priority of sending ID_DISCONNECTION_NOTIFICATION. If set to 0, the disconnection notification won't be sent. </td></tr>
  3565. </table>
  3566. </dd>
  3567. </dl>
  3568. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#a4f4acefdc022555862fd386e31f9a22b">RakNet::RakPeerInterface</a>.</p>
  3569. </div>
  3570. </div>
  3571. <a class="anchor" id="a92d493cb617381a6e750f7df6e768927"></a>
  3572. <div class="memitem">
  3573. <div class="memproto">
  3574. <table class="mlabels">
  3575. <tr>
  3576. <td class="mlabels-left">
  3577. <table class="memname">
  3578. <tr>
  3579. <td class="memname">StartupResult RakNet::RakPeer::Startup </td>
  3580. <td>(</td>
  3581. <td class="paramtype">unsigned int&#160;</td>
  3582. <td class="paramname"><em>maxConnections</em>, </td>
  3583. </tr>
  3584. <tr>
  3585. <td class="paramkey"></td>
  3586. <td></td>
  3587. <td class="paramtype"><a class="el" href="structRakNet_1_1SocketDescriptor.html">SocketDescriptor</a> *&#160;</td>
  3588. <td class="paramname"><em>socketDescriptors</em>, </td>
  3589. </tr>
  3590. <tr>
  3591. <td class="paramkey"></td>
  3592. <td></td>
  3593. <td class="paramtype">unsigned&#160;</td>
  3594. <td class="paramname"><em>socketDescriptorCount</em>, </td>
  3595. </tr>
  3596. <tr>
  3597. <td class="paramkey"></td>
  3598. <td></td>
  3599. <td class="paramtype">int&#160;</td>
  3600. <td class="paramname"><em>threadPriority</em> = <code>-99999</code>&#160;</td>
  3601. </tr>
  3602. <tr>
  3603. <td></td>
  3604. <td>)</td>
  3605. <td></td><td></td>
  3606. </tr>
  3607. </table>
  3608. </td>
  3609. <td class="mlabels-right">
  3610. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  3611. </tr>
  3612. </table>
  3613. </div><div class="memdoc">
  3614. <p>Starts the network threads and opens the listen port. </p>
  3615. <p>You must call this before calling <a class="el" href="classRakNet_1_1RakPeer.html#a19979ff2acc15abe22785fc55c1c656c" title="Connect to the specified host (ip or domain name) and server port.">Connect()</a>. </p>
  3616. <dl class="section pre"><dt>Precondition</dt><dd>On the PS3, call <a class="el" href="classRakNet_1_1RakPeer.html#a92d493cb617381a6e750f7df6e768927" title="Starts the network threads and opens the listen port.">Startup()</a> after Client_Login() </dd></dl>
  3617. <dl class="section note"><dt>Note</dt><dd>Multiple calls while already active are ignored. To call this function again with different settings, you must first call <a class="el" href="classRakNet_1_1RakPeer.html#a0a6d4c16c9b489574393a39ab2f99990" title="Stops the network threads and closes all connections.">Shutdown()</a>. </dd>
  3618. <dd>
  3619. Call SetMaximumIncomingConnections if you want to accept incoming connections. </dd></dl>
  3620. <dl class="params"><dt>Parameters</dt><dd>
  3621. <table class="params">
  3622. <tr><td class="paramdir">[in]</td><td class="paramname">maxConnections</td><td>Maximum number of connections between this instance of <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> and another instance of <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a>. Required so that the network can preallocate and for thread safety. A pure client would set this to 1. A pure server would set it to the number of allowed clients.A hybrid would set it to the sum of both types of connections. </td></tr>
  3623. <tr><td class="paramdir">[in]</td><td class="paramname">localPort</td><td>The port to listen for connections on. On linux the system may be set up so thast ports under 1024 are restricted for everything but the root user. Use a higher port for maximum compatibility. </td></tr>
  3624. <tr><td class="paramdir">[in]</td><td class="paramname">socketDescriptors</td><td>An array of <a class="el" href="structRakNet_1_1SocketDescriptor.html" title="Describes the local socket to use for RakPeer::Startup.">SocketDescriptor</a> structures to force <a class="el" href="namespaceRakNet.html" title="Simple class to send changes between directories. In essence, a simple autopatcher that can be used f...">RakNet</a> to listen on a particular IP address or port (or both). Each <a class="el" href="structRakNet_1_1SocketDescriptor.html" title="Describes the local socket to use for RakPeer::Startup.">SocketDescriptor</a> will represent one unique socket. Do not pass redundant structures. To listen on a specific port, you can pass SocketDescriptor(myPort,0); such as for a server. For a client, it is usually OK to just pass SocketDescriptor(); However, on the XBOX be sure to use IPPROTO_VDP </td></tr>
  3625. <tr><td class="paramdir">[in]</td><td class="paramname">socketDescriptorCount</td><td>The size of the <em>socketDescriptors</em> array. Pass 1 if you are not sure what to pass. </td></tr>
  3626. <tr><td class="paramdir">[in]</td><td class="paramname">threadPriority</td><td>Passed to the thread creation routine. Use THREAD_PRIORITY_NORMAL for Windows. For Linux based systems, you MUST pass something reasonable based on the thread priorities for your application. </td></tr>
  3627. </table>
  3628. </dd>
  3629. </dl>
  3630. <dl class="section return"><dt>Returns</dt><dd>RAKNET_STARTED on success, otherwise appropriate failure enumeration. </dd></dl>
  3631. <p>Implements <a class="el" href="classRakNet_1_1RakPeerInterface.html#ad360d12ceb7d7448b598c451fffd2d9c">RakNet::RakPeerInterface</a>.</p>
  3632. </div>
  3633. </div>
  3634. <h2 class="groupheader">Member Data Documentation</h2>
  3635. <a class="anchor" id="ad8cab96454717bfcbc2cfda6f88d8cc0"></a>
  3636. <div class="memitem">
  3637. <div class="memproto">
  3638. <table class="mlabels">
  3639. <tr>
  3640. <td class="mlabels-left">
  3641. <table class="memname">
  3642. <tr>
  3643. <td class="memname">RemoteSystemStruct** RakNet::RakPeer::activeSystemList</td>
  3644. </tr>
  3645. </table>
  3646. </td>
  3647. <td class="mlabels-right">
  3648. <span class="mlabels"><span class="mlabel">protected</span></span> </td>
  3649. </tr>
  3650. </table>
  3651. </div><div class="memdoc">
  3652. <p>activeSystemList holds a list of pointers and is preallocated to be the same size as remoteSystemList. It is updated only by the network thread, but read by both threads When the isActive member of RemoteSystemStruct is set to true or false, that system is added to this list of pointers Threadsafe because RemoteSystemStruct is preallocated, and the list is only added to, not removed from </p>
  3653. </div>
  3654. </div>
  3655. <a class="anchor" id="a9d820f9f09600401b3689a599242832a"></a>
  3656. <div class="memitem">
  3657. <div class="memproto">
  3658. <table class="mlabels">
  3659. <tr>
  3660. <td class="mlabels-left">
  3661. <table class="memname">
  3662. <tr>
  3663. <td class="memname">bool RakNet::RakPeer::allowConnectionResponseIPMigration</td>
  3664. </tr>
  3665. </table>
  3666. </td>
  3667. <td class="mlabels-right">
  3668. <span class="mlabels"><span class="mlabel">protected</span></span> </td>
  3669. </tr>
  3670. </table>
  3671. </div><div class="memdoc">
  3672. <p>How long it has been since things were updated by a call to receiveUpdate thread uses this to determine how long to sleep for. </p>
  3673. <p>True to allow connection accepted packets from anyone. False to only allow these packets from servers we requested a connection to. </p>
  3674. </div>
  3675. </div>
  3676. <a class="anchor" id="a031ec9044cab71ff6f0ecc3b60e21b76"></a>
  3677. <div class="memitem">
  3678. <div class="memproto">
  3679. <table class="mlabels">
  3680. <tr>
  3681. <td class="mlabels-left">
  3682. <table class="memname">
  3683. <tr>
  3684. <td class="memname">unsigned int RakNet::RakPeer::bytesSentPerSecond</td>
  3685. </tr>
  3686. </table>
  3687. </td>
  3688. <td class="mlabels-right">
  3689. <span class="mlabels"><span class="mlabel">protected</span></span> </td>
  3690. </tr>
  3691. </table>
  3692. </div><div class="memdoc">
  3693. <p>The list of people we have tried to connect to recently. </p>
  3694. <p>Data that both the client and the server needs </p>
  3695. </div>
  3696. </div>
  3697. <a class="anchor" id="a6244b23254ae6e95302b5060b3f1bc0e"></a>
  3698. <div class="memitem">
  3699. <div class="memproto">
  3700. <table class="mlabels">
  3701. <tr>
  3702. <td class="mlabels-left">
  3703. <table class="memname">
  3704. <tr>
  3705. <td class="memname">unsigned int RakNet::RakPeer::maximumIncomingConnections</td>
  3706. </tr>
  3707. </table>
  3708. </td>
  3709. <td class="mlabels-right">
  3710. <span class="mlabels"><span class="mlabel">protected</span></span> </td>
  3711. </tr>
  3712. </table>
  3713. </div><div class="memdoc">
  3714. <p>Store the maximum number of peers able to connect, including reserved connection slots for pings, etc. </p>
  3715. <p>Store the maximum incoming connection allowed </p>
  3716. </div>
  3717. </div>
  3718. <a class="anchor" id="a9faf5bd4ea7dca603f967b6ee1ed40d9"></a>
  3719. <div class="memitem">
  3720. <div class="memproto">
  3721. <table class="mlabels">
  3722. <tr>
  3723. <td class="mlabels-left">
  3724. <table class="memname">
  3725. <tr>
  3726. <td class="memname">* unsigned int RakNet::RakPeer::maximumNumberOfPeers</td>
  3727. </tr>
  3728. </table>
  3729. </td>
  3730. <td class="mlabels-right">
  3731. <span class="mlabels"><span class="mlabel">protected</span></span> </td>
  3732. </tr>
  3733. </table>
  3734. </div><div class="memdoc">
  3735. <p>Store the maximum number of peers allowed to connect. </p>
  3736. <p>Do we occasionally ping the other systems? </p>
  3737. </div>
  3738. </div>
  3739. <a class="anchor" id="a433a287f35dd77985ae4ac579e6adf76"></a>
  3740. <div class="memitem">
  3741. <div class="memproto">
  3742. <table class="mlabels">
  3743. <tr>
  3744. <td class="mlabels-left">
  3745. <table class="memname">
  3746. <tr>
  3747. <td class="memname">RemoteSystemStruct* RakNet::RakPeer::remoteSystemList</td>
  3748. </tr>
  3749. </table>
  3750. </td>
  3751. <td class="mlabels-right">
  3752. <span class="mlabels"><span class="mlabel">protected</span></span> </td>
  3753. </tr>
  3754. </table>
  3755. </div><div class="memdoc">
  3756. <p>This is an array of pointers to RemoteSystemStruct This allows us to preallocate the list when starting, so we don't have to allocate or delete at runtime. Another benefit is that is lets us add and remove active players simply by setting systemAddress and moving elements in the list by copying pointers variables without affecting running threads, even if they are in the reliability layer </p>
  3757. </div>
  3758. </div>
  3759. <a class="anchor" id="aa4972e4a0c0573671148f33ca2c9ebd6"></a>
  3760. <div class="memitem">
  3761. <div class="memproto">
  3762. <table class="mlabels">
  3763. <tr>
  3764. <td class="mlabels-left">
  3765. <table class="memname">
  3766. <tr>
  3767. <td class="memname"><a class="el" href="classRakNet_1_1SimpleMutex.html">SimpleMutex</a> RakNet::RakPeer::sendReceiptSerialMutex</td>
  3768. </tr>
  3769. </table>
  3770. </td>
  3771. <td class="mlabels-right">
  3772. <span class="mlabels"><span class="mlabel">protected</span></span> </td>
  3773. </tr>
  3774. </table>
  3775. </div><div class="memdoc">
  3776. <p>This is used to return a number to the user when they call Send identifying the message This number will be returned back with ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS and is only returned with the reliability types that contain RECEIPT in the name </p>
  3777. </div>
  3778. </div>
  3779. <hr/>The documentation for this class was generated from the following file:<ul>
  3780. <li>D:/temp/RakNet_PC/Source/<a class="el" href="RakPeer_8h.html">RakPeer.h</a></li>
  3781. </ul>
  3782. </div><!-- contents -->
  3783. <!-- start footer part -->
  3784. <hr class="footer"/><address class="footer"><small>
  3785. Generated on Mon Jun 2 2014 20:10:29 for RakNet by &#160;<a href="http://www.doxygen.org/index.html">
  3786. <img class="footer" src="doxygen.png" alt="doxygen"/>
  3787. </a> 1.8.2
  3788. </small></address>
  3789. </body>
  3790. </html>
粤ICP备19079148号