?_<W<<n[    % _ w  3G[r)08`x,:?Jaovy4glv ;o'<Xhfr~/7EIQad"AY},Kry)25>GRUhlpt)5AMYdp|#,6;>GOYagnx *.39ERay}Av'5@LQZfnv07KR`   = D Y b w !"!/!>>>$>)>2>7>M>P>Y>^>f>l>s>w>>>>>>>>>>>>>>>>>???#?&?E?I?M?R?V?^?? @@@@&@/@5@@@H@T@l@v@}@@@@@@@@@@@@@@@@@@A AA1A5A;A?ADALARAeAiAnAwAzA~AAAAAAAAAAAAAB BBDBJBMBSB[BaBeBiBnBrByBBBBBBBBBBBBBBBC CC"C)C-C2C7C>CGCMCSC`CmCuC}CCCCCCCCCCCCCCCDDD$D.D6D;DKDqDDDDDDDD EEEEEEEEEEFFFF!F+F8F=FDFKFTFXF]FeFmFFFFFFFFFFFFFFFFFGGG&G-G4G;GFGMGUG^GeGoGzGGGGGGGGGGGGGGG,H2H6H9HBHFHQHsHyHHHHHHHHHHHHHHIIII"I'I-I7IKUK^KkKtK{KKKKKKKKKKKKLLL,L:LGLULaLkLwL|LLLLLLLLLLLLLLLL2M6MOEOLOWO^OfOoOwOOOOOOOOOOOOOOOPPP$P+P3P:P=PPPUPaPhPpPxPPPPPPPPPPPPPPPPQ QQQQ!Q(Q=QIQOQUQ]QdQlQqQwQ{QQQQQQQQQQQQQQQQQQQRRR!R'R.R2R5R@RLRURaRhRmRsRyR}RRRRRRRRRRRRRRRRRRRS SSS S1S9SASFSJSOSUS[S_ScSnS|SSSSSSSSSSSSSSSTTT#T*T4T9TUGUzUUUUUUUUUUUUUUUUUUUVVV%V.VbFbObUb\bebmbvb~bbbbbbbbbbbbbbccc cccc"c'c+c/c4c:cAcIcNcUcYc]cbcicpctcwcccccccccccccccccccc ddd d&d,d2d:dGdUdadfdidpdtdxd~ddddddddddddeeeee e$e0e4e9e?eGeXeheoere{e~eeeeeeeetfyf}ffffgMgSgZgagjgsggggggggggggggggg".''"Windows"a.b.c.d"block"level-trigger red"set#definP WSA GETASYNCBUFLEN(lPar`am) 0L`OWORDP9CERRORQ0P0 HIQPSELECT: **VENT*#en@dif#if __cplusn WINSOCKAPI_#include I&&0!etLastError() ==pno EWOULDBLY)(((fd_setlon0g)(iPtv@p)->tv cF(Coordinator)(ET _STREAM(BASEl+(and(!iUbut(e.g.(i.e.(Pnon-`,fp($u_(uwP* :D*BV2 S 7"s 5"itions of regular* to aDAsyncSelect( ).p XByYPextract the'or cokfrom q2 in! resBppe*)(9)"Carray[count,  , char `FAR * t struadd.`1amngS@c0isnOOr(wisT Th is/* Te,llo!rxat wevuldnh't dable */5Rxdll $*/0x0000x8 c @)1.B0 1.100016-bit32PA 0 numbin A $0NULL-teratu3 "al na3.AA %SIca"isvprogv?. Ca3buffef Kog datadescrip identify0Ybd7`nr~5cKp6 t[K]eopa0l po'oA =ervic]1?\ ea receive#F1 No"t mu,Z4size!?`3urR0becafsupplis3G~irm1 >tanot only~re!RsuccfulAF_APPLIGLK INQF_UNSPEC^a.esA/ 1jXDLL5=ImediAdd%Py,@e"k!pecif}f6Twithw1)`RDaviHd T,dwD`ebuggernd. 96e6eDev$?)bIDis  EADDRNOTAVAILEAFNOSUPPORTECONNAB D REFUS DEST4REQEHOST"UACHENAMETONGEPR9TOap`Tpp1MANYg S'E5Engl`ewoodX+de ps0H &"0Fs -|;, h_;)Ebh aEExt4PsFALSEB FD_ACCEPTCLOo' IOlOB( D/SIZ(WRITEFIONBIO ORM ,FTPX ftw!#XFor'r ReHe Uy type 7S i@tcu ntvail)?y GTWH+re^ UC. hpbe ^ fig$ -( f-of-b((E@q8@INL}))*16cAAmore,Geoff 5 Gra  Lg#xHANXDLEk_ _FOUNDHW  ,95+HenrGTg Hew t-P]HooQ*ILAN SysVsIN# @BROADCASTINVALIU.IN_I#PERVEDj_OPTrSj'mc=oc s,0r)Q,A,D,) .g&{w"yH +B M->m/#"shuI ow-> K4gdej IةITc./f IndJ9 }I? 8@v )f_\)< 0e@trod n-ўib,'}Sl-^_Vpe>_a!y}9aJSB$%fJ( VBokJnJey.Keepal c0beqLOBYTE(LOB)LeZg3 S2 fXLibraryL @()MAKMAXGETSUCTMSG_DONTROUTE X@@2Z 5 +.TPEEKMark Towfiq Maxpimuml^niMjMicy s`i^efx$S;c-p$ #N-Kc e0/$f04MHsdaBP/LMult  ) z0Co%Z.NIMP.+NaNeC ifly NesasNetMan,#woResearchN 3Jp.f|cQ<#M3[/isf߂PWo _'q% W II, (Qon->7, %RF td&_~i 750ENOBUFS, >iv٤[Q(^byߑ^^GWa:q!followG s 0!rsOg!*]HOW&OO;E={KO vsO!!wise`,O{(BIXOZ viewPASCALP?P ED STYLE:Peek @A@gBKWcop>)ncIWIDvN0pqueue.fM5()PN pi{( k M New EPro{(SeemmPwQw</RR jRdemKsR  f\RequinF7| M llu Pv n API fO'0"2077JR E%H ory_?%1-d@[DDD-$iand@s.]WW(Glc+sh'~s&HP 0( i *} m.8ymx ~9SteStrv ) Sui>t^Egv)0 Behp/*4Lc)+V w(sub?9_,Irew3I_dF*< add ; LL-h@scheduQa]7 # duoBxour$ str AUU՘0tpo=]->Mj*!!14-too larg fk(FN62 r-"M0|i [8.!分*W7 g`C _W(>e\_nwD&[Ml AULbb ?/MS0 /1IkW$$Yy~o" qo`9XNMJh 9J A4DAqE1r* QZC Ao!l2l u0'efd;0 ˳}m$met!56:!00W(@6T_ '^,- YhǓN$punkno~ u{Nn pcue,#xKZq^p  o g6h; (LV222Zpo#[ =v^}FKG !t t doe'(y,k(PE?beshut{n;/P0"p9b?)" &#%7&()WGFHIpEn-VYqC`4)v.,D6Z'*'H*maximu~mna8 h Yfami,tSA$ usJ5'?X^vR kl ct 5*%Fc;w$SPF_M T.lr@Gdro O@!(ab tpD)({ ATxX.%4eby <A57virtucirc )rL+@ ZJrMYzO+?\+Esi 7&CX `% uĘ:Ql7a R -tT@owfiqTwellTUNI(XUnmj -BaUn ?tyVXali !,A OcorfX., ;f-<ueV11Vol] WICKWORDW0SAAs GeDtHByA ( N*Proto@%XS7Q0g0PfXBPyY()PS c` 0`@,BASEWCPl R470B:NC  Cleanup DATACEACCES DDRINUSE PNOTAVAIL% FNOSUPPORT4 L+DY?CONNP4ABE RE&FNSE= DEDSTmREQFAULU HOSTXDOWN UAACHINPROGA INT$VA ISPLOOPMFIL @MSGSIZ NAMETOOLONG Em``AxNOBUF!NO>P%0OPQ."SOP .`P:D TYPx!XSHUaRTwT@IMEDOU 0O`OMANYd!W@OULDBL0GETASYNCLEN(lP=,*(9SE0LECT(@VE6NLR stnE" c._AZ_FOUNIsRMAKE REPL_w0PINITIALI\2NO_2 BRVERSYSRSet8SHook1`e/t& up p#TRY_AGAIUnh:FxmA 3anWWu)sW zd ]־'01H]-QH R CkH er Fil&e'ckV st>5Che1E 1.n Multith1 Ew--li(O(?)E586?8 =r IlI-[|I.Wng[1991d],C_~S_I's',API___wFDIs[a> ]ut-of-b'( <8,-HWQ(V([luve , .ab[ja (a p() @ 0ed(, ,ledg| 7 G K][KK@! lena$ffU af al(gormas$ir@mioft.B5^>w  4*alPsoal]nDltghalwaysamatzi a@netageT mI t K /ora ) S"00:u"%^arbix= tQ I8SO L_)> d IPAA&_TCP.k :oss p u/@.-!X)ùz byte?!0task nd o*j\.gin OjBhigh0 16 arrrrivassignocq.[ Ps pI1sxymm0a to.yatte@aur:>t@<)3\l.a`voidbl0ogbais.be @mcmer,cabeca be4 haviorbe bebetw yondbi-,di t#l lh@hpchdpc.cnd.hpb()5.^.sM is²b+ 7/broadc(buf,fer k0);but"2Dn Y/dGrm 5/< zse~m+G ers wffO` *"@n]e^nc stceu iah iaaAR * pP`ASCAL& t_ntoa (>% Fcw=c..c=n"d > ()"z~Xdes" di mmW  jP>vrX XG(89@7cj n5figNuR8 PBnftormn@0' 0"  @\ @uZ0`t. 0 q-Nԁ507ck@d 7.h@g0WWE^Ey eg ?c7p@S&p1de~ftEPEf?..#(y ALLO5y!6 I5TdU ;fla?mdi,reiB*WF q, inu! riT ol4 ven" Q/]"Epr P2" c u"0|lylp$u%gz dg4A]c ;aI Aߦ11-$@lG de57dep0 .0 u Esc@P& Po Ps0z i(2Ede op@2 @die P~@is8ir 3u@-isplna;h !ddoc(dog < ddzB:DsuM*fu`A .d ,nduedu:e # [eItime  ) fO eT*e \l_ 5i1))CD; ٘o+@Bo eqg  ryenviClv"rrno*$/$s0,p;p7Q)s R ly]xa} @,excec  fds0 xK9 Nex i?" exq??  k&@dfacP @ bf m s,xAfli yfd_setfieldfsfirstflagsf10rT a nr:t*c.)`W3 {4f, .ffromq ho work* /P*  Z۪ thEg"4ex O"3B (i.=nA -? 1T7 ik[.t[3 tyK[Wrfu]gen geL@= t.sunKgetXbyY())@by (`p P Ipevg`!0 to=` PumbehvZ` pu0  H &`T -; N" ludg F# 87WWd 7 @ i0@ ]mfluY~:)6z@  @%@ $T`a tꋽ.P^ 6E : B n[ p o rXodui voC#lveio@ 2= JP saaccO+T+y su<k"Bj jbvb@HftplELl2Pmlrl_on$luO&&rlla9 w@dcc.ttiF leg*n@,4lHlibrarylik  }j@ ed n0() 0;V" d,/ d &` DoopHlpBMkFvlDpVi orIul&pIsa->w(h /#43:#X ?kkeje tVifY pu#gymarked t h@jsbu-/\ ch ]E bh PIxzzuyy~ ub8 eansm"enis et memoryoD TEB+.TDsmtmml{  yE i-hom 0}1 @2 p1"ocW Xdo API.Y's)d/i rccDryn s0nego nen@sgu"Q @hlR!el\rtIInnewnon-b Ǡon(ze on/0rl0ly 0o ;3\hn -k= 88.8sobjm obR!W!`!varU͍r| do>%@sviav K@voidwH4V!!0wMsg,wPwP@RV[OwaijwaswrmarkX A[)wellw: w?z R*g arq4*P fyzWə/g :+ (if Ibuf$.]?yi]FY'sM. lew` idi lyth= 2}hKb} :v= b s failV +<E 7)4o40P.sy.dP%.sh0* n;wr O  .ra tHsaD$.wVersionyouzero/&;)z4  u |CONTEXT|CTXOMAPd|FONTb|KWBTREEf|KWDATAd|KWMAPf|Phrases|SYSTEM@|TOPICA|TTLBTREEn|bm0(CT: **VENT*#en@dif#if __cplusn WINSOCKAPI_#include I&&0!etLastError() ==pno EWOULDBLY)(((fd_setlon0g)(iPtv@p)->tv cF(Coordinator)(ET _STREAM(BASEl+(and(!iUbut(e.g.(i.e.(Pnon-`,fp($u_(uwP* :D*BV2 S 7"s 5"itions of regular* to aDAsyncSelect( ).p XByYPextract the'or cokfrom q2 in! resBppe*)(9)"Carray[count,  , char `FAR * t struadd.`1amngS@c0isnOOr(wisT Th is/* Te,llo!rxat wevuldnh't dable */5Rxdll $*/0x0000x8 c @)1.B0 1.100016-bit32PA 0 numbin A $0NULL-teratu3 "al na3.AA %SIca"isvprogv?. Ca3buffef Kog datadescrip identify0Ybd7`nr~5cKp6 t[K]eJAl*Rw+Windows SocketsBrowseButtons()!! @L1.GL:Windows Index{ I bP!~R0  Open PNetwork ing :6 &20 January 1993Lt G>ꫀ &G ( 7ă .h `,N`HY@PHAuthors 2 Acknowledgements 00 03 Bpdice-.% >0$ـw0upJ"; FD03`0li PtQ!Gb[~? NwP2a=aH`" @hs Q%r 1uqH `!`XV*aaRQjU12ESt"oBeh  Icon/G%~:. ,Jb\¢Zrin Helpv1k1ukD:+ $;0A!1h0 u ! vprovided by InfoMagic,  It be `ly redistributed, as - A=V. s0ock S@ Legrate iNe ation incurr~oblig@The u.rtf E vavailable from microdyne.c yanonymous FTP alo WR[4mrial.1k1<E' $o/Hall,F*F'x;d$Tu'ee32/6m G*oAlPl F(;3.+"Tb V otherwiseR,  v, irety copy rightnot are  dD% pques#@s ubmit| yXm#wl2@Re= sFad ail 5# Q@-rA0Y  |,chives F`, 93v]Ҵ" DӸ, d#cb$/pub/@UQ a s &is } 'of -A1p \)$ $5_60$(`4Fa , &P#7Tc V ank pani0Qc  make } : , 4, Su% B8 Spec kZ(5'=2 efforXR[QUkh draft @heavi< B6^% |feMdetz5 ManagME "vB)1.0 debE" 0@7:Seatt  grouhash out fin!QJvis-a-. !C k ow I s "pluplay" b q du%IS6A-Th{i! s at]top F! '9207shd W`SAT (N0eTer)j01zt4+ili$ . FlyACO rho<ːIIBFebr *'93900 (aBrWi  : "iwualcorpo%4^1, Oo}ougBh'viewS" quickly. ju year, D 1&etisc0 MbusinesWa hY }/r^f$sBhQit!y3&" :pn e-Eu?3.' one who a& Sapologizevadvan+Q.  MLR' : E 7 > J'EK  `g (Chairman) -44 (EdM)K3B&|P:8"d dtr6soft(& ] # 8M2  7 j[ &0 p#J. /ard ChraArap-BnaD tc@ Larack.@b7@ftp Bs Rob!*rrowWro@bb@jsb .ukCarlh amejDaveKvX Ma Beyss  TS  Ghics, c. BP!BonnI DAa db@wPMalcolm BugrICL`mcab@?i$cl@MibCalbaumFroir Techn"t m"@ 1 ert"IsPaac enu!xKhoji D(arbrmixk@i@<"] |@[ C) ! bV DKaranja Gahkiok0aVik Gargrv y GGuptag2g@g  #Jim Gilroy%.jsg-Bi1 Hay~ uMIT Tmima KorenNwt@neNtb~#HoL`awCi  D-KUn Le Nove bkl@n #Ro Lin3*Cr_[ @3.3@n Je LJiang @twgC3ee MurachZlee@nrc)$PeC O b *"eoN^jL f~=.!uDPool r4E8e@s 1QuDin#rcqcGlenn itsmaHgr@hls1rad R Age @1-Jona Ros IBMj1enD@v.ibPA-}kVA^J>ph Tsai1joe_t Ѥ l $Wuwuaj$&|#3 31G3)\$aa )3@$a a\L7T;n & OdN|I! t Berkeleyh MVVm ( E+ ` >B @1d @DWh4  vh  @.:@' ") @c@$ 4- **:@B&  W@SUThe Windows  }a K ming @ [Q7P vbased on  " populariziBerkeley S(BSD) from0of California at ,P. It encompasses -5 u EW v(sist' 4.3#$xPor&.v%material'&Copyright (c)@ 1982-6 bRegtqA s  EQLicTenzA/m m0s f redaribuA0EG1d`G\Kv()nGGP$t`"7&GG#84G6H$hsG6K@ NI \ej"6`K @ކ3 "w cx3.0wards7  /QIʴQx!H16g32tUn'!4Q )X enA M@ mot@hreadsexec1 :' 3.1 U&ld@ baEP K@0tBrefer{|Z0 ]ctu"y@"#p0n ) (susS8\ Qe on 0ptEz nW)y#-X ctyT$  wiilit= F  rst-per ma  g; i 8 oo#C;multPsk@ ! b-emp" a" thH  2  b6 ory&6H\K#w< 6KK1<s(KM@E+S( -\KK' s2#KK$ Fv\KM$8+v # }u: iQ benefE ` KE*[ ndit dOu Pr Ea publ(ish (dr aft) * } a fu N)Q c@L . DiscusI9 } &2 FQ y wel e|S" |s)AinvyDorum 0Mee# 2X pa) } 6 irreg iDet<8 ! c,a;e 3KM1` M27MN'2Int0rodu'* )M+N$*NUN$( <{60+N"O+ $hXV*0 ' (d&   [ mun  " f} ~-  $gbeNgb tr e6!Oa*UNLO@$1"OeP$ >p)0Jgu ling Hlaiut `u1.0,$ absLolH ; f)(Yri46=s N!n img;/e M 1vor fix=&v V!+M sign0ific bi8rpo e u:(LOP@% 80UodePP3 6lP:YIxa #  I~re ev P'^ /K n(P$Q %+PQ(WD FDLL mwZ  unre)D/ɞ [1J .ir = ri6LUn T'w y/Bn($Q"R% QR@@ A'q˒" s(coub' bW,quir)KOz a!rd-ly4e/x urnG,!( + ("R$S%RS@H Z8_J7gChan 'd( 0c  H Hdif*t 9d (four-by`ur,(`7B] * C ($ST%sST4so']tp. - c@"edge- g$ged" "level Tf ) A$ CdA  (TȀT%:T C T{[mM\MҐ#A tG f iT@ v9st[* \ J= ] QRFC 1122 pT M&T2# 3 e1<v en)2$ $X Y-e' 8(  $n ̀0μ ^QR `K`HKB&`=33`(]@ @$TMP !Q 0* 0@0N" ) 3+1 ])nʁ$;6;).$:d\;qd `ʁD@ Vq\ej To detect of (or ) Windows implementations on a , an  olinked 8pImport  Eca lleo . A0 beSlittle sophisticatTit examine$PATH  o Q Hf s (WINSOC@K.DLL)j II {a  0usRP discoveA {p u q } cU address  # {<'concurr+Nothing ink } 5 b3as  '=cu  Pd Nply by more .^j]* $s@2Ph w obtaq, see ",s"]31r )]$) $S/'] Ot?B+dW't鄳Ed(tThe Mma ial v derivfrom"An Advanc4.3BSD Interproc'Tutor>"Samuel J. Leffler, Robe S. Fabry,alliam N. JoPhil Lapsle-M8Chri(s Tk4$n4`43D1r  D) mp$aU%)D$h"D=mڈ& {a|Abasic build$Q vt \*A ] ~ endpoi_ which / IDWEa ]ia 'E w ИAG\  fbund !threads   \Sockets aexchange o \s3 ( cro2aries if s ]  vper@formed"Eu1 K:, vd!0 es0e _$0n (Futu< w } ) a-accor!  !visib Zs 5.pu7communz0 y ) vnE !0 / 4 =k$s !(K mCTwo /|mavailaH ] /Q |, e`, dfupluFflowd"o _A 0ngr ] =}*omi&^ h c)Cia Y [G^` f ֢p??I $+ ^ 1  ܻaQ'*a1bat `oQerDat&a0  1fo($ tearswitchnetworkEr!3ڈ1rd() $ );@$ ,G@V@&A ! (W &<ȉ!4/3!Pr s sm!P "0c? !t]xLL"yestis3.($#c"  #O ! -knowmX% v )xq #% (=V$, Y p] % ȡ + w .o^)& ep/ N< %{% asymmetric ' $, ei = playm mas=!slavol]#2 6 1,viTycogniz59DPv  N 1 2%N6TELNET C%Q  ] emula @PD@4E FTP) mat 2{]@ z, # va%qmF #)P'a "A <''XBoH''%0;( &aao a Ne 4 #, d !sL d; O' vrequj6*a''#6 Y M sCHY"wakup  weu'ace< i-W \&-(g E n(sPg"!E'5]11r ~][) ($>+]$ &9s' ?OOh: gÚbn  wz 9Urgh OBBerkeD qȲ j Uo|,aw fq 1'  %$ b]f RFC 793 N( s9 pv rodu )qJ 0 HS=W8laid  b1122 im0 f bo abi!6! 8ada{ c v hA 2i, Ip "]}uYqdoc ^H ( P)AQ ` beyoMidI Bd a% Q1 d8g #䀓%S |ތ G"ou+bj0q oH : # n E PpairB+M:30del +9 [ "~_Xa1 + H :@, U  pD  *u!@#3P$.O`P J* B n+ sigyhE#Cנs :6_n a*YoMo  sepa<ly'k Zo choozy Ysav" Y A  aff 2N( '"peek qJ>` J324?([mM @+aNp:gre 6^"Ge" !(1 chi% /] (see , Ha  w Ke-J(mine  Co v"urgent" (the m c# in-l+ n). To / , Windows  will maint a "ma0rk" Po Ldicat_po+ at whichM`o  appl'ion us/ t  deter@ vany   it  < resynchroniz by ensuring oup $  vdiscarded &.s~0 0'] E8 vpartic ularlsuit[handkg k of -datar6 J1 ) $ b,H@$(a(  (R t+& TW`B_a ngram` \, o ssibl}send  s  networks a p K + : /nop simC$"* p s7 a load]a JI Pce`  ]vKrvim< .sequ ly o !sockets arR# as LQ*Br{@ vtyplAWQ  % Ns:1dehsir"fQ<  prior know ledge  importaEu y D9b p accenAneighborsS  /dep!J(s)c o )E s 2 epQR!j1d b cas$co&4 er4 =-bs +q T H& sasSom/;K no R  IEEE 802.5 tokHen $+ vk-leHvel $?,iU;forw4PbriEs#!S B }doec +Qq za '=n +$rol T{3 1z)"$ 6)K$. .:"d N  4mJmEyD Pza `'xC5U4Intwo}% vlik DEC VAX, e diffLfroo68000-ae GpV$u$d"  &errect ori &A_ s IP  z w  ca  w " K  l:QBf" _in A c sin_family` B)fiC)2 a7#c pu!$9 e6"time" " D /Q^[AjpecifTQwivS BVgU s {0)lZlready@"Y <;!so  vr@if, [elX, pe6 LegerY +] ! F (u(func() (_9#stru%vee NE isplah s  (r eturnx,@ e.g.,)$$\3l"DhoP n/-$ K&< 2N3p4}"Z-zunavoidaV  К4cauD 5J9 [u -  = own [)y "y M us QY vnalII K}!9OP&^ 31rLj)$).$ "E(I `yT` y ] (LRg*pa3 cHrib>2 ,#rA_ $ +og*$ ! () .l)mQNI i 0 vsh*M .B 0Puz 80J @p `ZBF 0f0A^ 2Defaulthx ? en(I' @` o Z>fig#0d Y%of/q  p@Debugg6en4(i)DܔIf eETRU k 10f;` L 0rx( 0  И4 - AW ois0u S_ nr  P'q(^k #!PM+r2!SO_REUSEADDRW @ ] vb0oundf W) !P  Q`HAq )Ci yx\" <=P R?p Ucoal9&B#  }^j[ A1!|~(#[:IsdnHhs:c" lemX sil,  Xbd 0Gp4,͎a@-`e i4 _  831z=@)j$ )$N=R r'iwҢ~]Z JO~EclaLss   X-Q@> v/Kp { ;0 7"  d (t5IBerk y  ~v CmecT ism_ up 9`nbanّh 9 -/7  0 J -mann^   0 3$3p1Lp5N)=$)"p€$DvNs5 \`(] 2Dt `mB `1&`a;3` _j!@`sM`Z`.igP,&:Ða @few y H f hzad ? , iɪdh nc+Eb usuy micNiw2!|% "^  xQ Poiqs 0!0Os 0= 3!h1gvh1 ^)"5$aS)$h $Hn 5q. * A Qo ), o. The of ' ;Qyenhancemen@ts t#Windows  |, as uableuse \s Es in NT^Definition c@.s r! aY/32 $,@ Ybe promoted c16$.In ,   ]arT, tergers,  s!@ K Ptruepno !4 . i vnot a g \(Socket   iA ;0"INVALID_SOCKET-1  ' vunsigned, compiling  ufQa  leadt(0er warBn/s D0/MP 'mism@atches( FT vrPMa{ @0 p2X@&7 0 Q \()!i 5 b done b2y ar, i -1steeizomegative (both  p aXBSD)Inst(3n  5" 0a nt ٟ rFor :>N6) "l80! s == -1)/* < 0 */{...}4F+ &.sI3C4 +3h3#ppu@&1# n3 d1d )"1$ DV2N)d$(((  v 07 <˗rKR,1da ɉ M -stJyx"ll Le"  k d   ED % vsti=T@A ) Ku a bitmask % vimpl%v?6.Eo a x! * adhe=5! FD_X XX Tse@t, y P7})U  Mwhi!B Gworkr,t  M`Þ, obviously<sdrawbaHcksuE  0inspCQ ]n0on-s|G2 0 " VAit 5[&XsrlQserrno(=Gx& SWrpur`pose.26AA; )h2268-1 (%f4y  +%%ro ` 9 Bt0I@~(but r v) 'l{R  % S i'e- 4.3 Berkeley8 -' 0 4, ,% "WSA" " ac jatR u B_isTT` K 5 :GA('\& q #?9K  1O w Po*s)"q  `$EE/  $hnEUPu w  %)աA W h J5\ 6x/ LH ;LPHOSTENT !,3  1K: )"w  $EE)  $E} y (  Htwo cas2t ; renamu ]0  voidi&o + }\ '0U p9@ ! () &P 6Ksk YQ(Erso+ 8 6$6 l] yFhM < pr< '-sd ifl \`irequK! }y c#sum&&sponregulaw EED 7. B7 , writeB _@eHUư #7 {@w +.gA Uss<#Al Q]F PV(dg XPu<d |y&y #qG}P n B%)r[mMf-EI3l q4 tVH E C run-t"i sXE pQ 1unrelKJoj Ow X s(dX).uS! _k fcntl& #31uO7 )"`$ )"G$8lj 7+@ $9i6 ( S ;Ne3Eir+Urong$ discoged1 wh[20r g%*^-_/ f t"oLporx- %awx# # S  Q P3#Gj1:j4A0)"7$)&j$.L0A\B ~\ejjA pXd\0# txim`um s 3 V.k Ǎa  zbap plica , 5 mK [ TPtopic5 add4wd. M L rHoweve # } { `Ch 0of[2-P dem$$at mp @/ )  iC <35 'K?{ !9 'v6~4;,nk,c0apabA A7  64 \s, or 5 in  uEp  . One of doing@ bincludeI  DMfile, Qadd4-DFD_SETSIZE=128 as an  to?lifQ7CArIt +demphasized defin= ino ov sA -by!Windows  &4A# 3 AgA1gAB)"4AA$ DXYN)gAA$(( (  ( _AB= H` pXY jease  Be@rkeley!g u,@.!` Gar 7`Gmere2l$ 2/D, it v$thfo>sufficient = \)qbG 5 E aB}3AB1@BD)"BC$tt)B.C$ >tCC* "* r&tnifest 0a vp rovidQ@:9$u1 (0 vno,ory, 6!recommLen9jThMillust`ratesD (l :>cX.C@D5 :!  0 8-1 /* r < 0 *$/( { ...}.CnD' *1C  5CBT^@DD5=@q# !~0'\)'nDD$Z#Zc7 D E1 EFRaw )DIE$6- EvE$S0(IEF- p(hdqt }do c Xa DLL fr5i  SOCK0_RAW#0P v allow7 supp#E ] -1ypli 8 i@U ope ]  \()@ (se4.1.23)$f75D4' iFcq; '  Z34vEF1XFJ)FF$ )7F#G$nip*FI, &UcK [ vdesignworkA M w-@(such 3.1))yD )NT)pq)l\bc i auth-&'aw%U $,G ,synchronU  ay a<@rulT*%C VsOI/O  Failu5Y Zleads-unpre tab\ ;( 6 s %simultaneoZu(\ b6 3?2 bwhi]|o   pClos i(K *(   ca @ fX., j l%% k  _ Ah p'lectcc#GJ%+Ld  FǞ @ tivFB!beP wg;? 6( K vwaitQy #ehence  GetMessage() "a yierl no@b ‚ vie_CI?whobehavi dew7)A G ow! ('$ Of MCI9K1s 9KiLLIBRARY OVERVIEW)JbK$ $ѩ39KK( 8щX h4bKK,,:Ts6L 6L-KL- *Z7@9i4Block /N & ?TMKiL= J@Ң]P`M;[P6B-7 3LL1o/!LR-iLL$4 445Q)LL$a &8*R\LDM$ ])r  M$[-sty ] k+)LoO S6,PAS~Aa{欎Kㆃ pp}Bg)pza7p0FEp`Spx )y I  ܓ om'cknowg(E s i \!lJ ]tuFr6 eg-  As!t /3n unnam\$ C RemoP@from3 - cK y s P}/ vset In(&a- ]0 / `"]$ $Pk /Q>0= < assoca6] :P1 3c ` net' 7<###P'DMQ 4*Z_*r))! [mMFr80Tr xCbr"' p!rrer 0.vertT /  e!W ue 470 i"ASCII a;i.eQ ''7 tmP,= UQN s[ Listr Q !)3C8B la\" K19 ! na###@ d*8ocjK2 jp@ uSnn'B7()GPerƷ  &x= i dgp#oOR_0 G/Qt5B_tKmtPM vPei)Ic ,St &! 8hu s*full-du7x N& z re#nb poi0 $H;QR$Tv*$ c( N*n$3'R S1 4N" S -R8S$nG)* SaS$ T ,8Sˀ9 @Cof One maj {!V-[ ns ";aNinvok ;N O E vYAV!arisb " ti! D  (i" ( z:ob3 *@  OE o SU [F s Ӡ  v/Iketn br !  A # t["aSˀRd as R.  strongly ] s use [(@asynchous) if at  ,A Abetter nonpreemptive Windows . US@ Db@solutes :, fulCunderstand s +?.aSwo 3 ㆃ À B` PzaP #Pڄ% 1PFb3P}on a \, s C, @)) be   vno y S Oth5J0$ d9 90 may an (y  comple@te,  ps #sY# ` are ws21 All  ]asisk in s ŎvfWithaa  Jnot" @ vhle X"NEDLPL EGPn en&sF n it dispatche.R s (yielding9 k. 9 :eP7cknQ  Apq Ifk, lBlockVCall( o ldkfQ]' QRefB,ra oe , pseudo0code tˀMQ pǫl{@R2q vreceod @ Q 1 2v a !  U issuq  difficulty manag!saf/r }do c rTwo u"-sisztj"r!" drmine \ _t0Hcancel @in-progres ny}An}5k vc0O INPR@OGRESS-I 5hasizP i % bgts% vsuVi si  , M3?3x-Srequi(remEs advd !(for  _ MDI0 )~D_  Bpqufra y which ! K  S Ywc  ']CU Ң]geKuE2D  0kB&Mtrue:' vo:0&uabg0  ]5 ˔(A "set7Pby ~ IOCTL W  %A] 2` . ) ] S \ ] 9P/ KW0 Vt~y$wi  O4#}C ={r ntr! y };0 fC@ le2Omn-p a Y hyCNa  n)EErgu" vH eenLsut yv8ailAoY Xou!'T + c mv mapBp_!addabili P nd{) %lso)EspiQcoordathՓ0 y _`' iz d &1b,  |@ c6e{#f  obser rul{B& k03Mى1/#ىB-$ 41   )ى/$,*,  B2 2 ci-鰓M"database"y b(earliN` ߿(nd c  nV Fn~oi_ @rSN  / ocat'Ԗ Bop_ V5 vol4 vgood O ex kfromlthreaYwOymob "t)aL + } a2w  5a 9L) ?q@  )cP/Y *PAS~A@Q pEͮ1)p/ۛ3[7mJmEp pD )* Z 1e\$HKP/ hos>G5 4 (T` % /] nsV0 `tA` #@ 0; a !PporN7* $ - `J`& Q~? `:B`™ MPv /s ($ g& % Berkeley $Princ ip '8w  Onetwork Wh+1 %t%Qory\C0  g (wK '0 N 16G om d+'7H_IM@ #  v0Y 0v M"gf }sB v 0*<X' %Pт3}O ".d E*0a3}a Ratսa Gb6}TLFis't) `5PsZ>}|R]H2 Bu +$NA w   +>03 u) zfIafwHU`cU@ pop(Per m u/.Qȹ Ia V7@S*@k"_Sign & =:}lObtRa^ :Xs |} mݎ{}8) [) WD>M _04z  b ?"Hook"/meth W( =T!!S p e+g(2 1#Initi al0WSAU" "3c 1( v/(;$c) d$"vq;kJ br2fR O thread-d  s, 0arr  l $m"QS-Styl Q zH!\N@ K vvia "errno", not  Leg0rityQ(ID%.t@ Xtrife+ 0 hT  a 7C,}CB  by r f e. ;G:aC)EIf-NOT _0$dlop!l }-, w0DadvvGwp`refix"WSA"!ensu8ccura1detA6*+d+@ $Wu@3Fi }"] %0_ sK f` q Ixs 2° <  tho , ! 5QX d e0nume_;fpGt + c  :i{v77 ( Ӊ StD"k1))@TAs s  6/(`$yyg);1$vͥoT 怩 y@ \ejAIH `K% I05A DLL1  R"ixrRi" ; 8exa2n d ]B ˪ @{ Klayer1 zli KsQ(!sv $Sua g W 1!simultan@eouslyX + y?Xcau%Bph et!vaE Wc$ O*co Vxt P wi w´ vbm# 1) =a ' rQE  up -ific 0o 4 freR  Qݦ@-(aL @) %   ! u med |vf^ b1}W Hiliar vCleanuHp() &)1 4@or9 > from UP Ah build#  `fC cCurrTask()(!]po%j2 @o6k hp  : L1.Q p 4e% = ]+B2 a h do c@ G ow $Г W +#wa U7|E2 8-pinst_ B O)uij vpob appl@ p ') yR lBTIC r|.#3Cl.vs bU@ #D ckls P, A W s`a  l (t   U CPU#  =l  G NCQY 9v xunesee]LSg-a yWC6 ;Q=NT mA  Und4g ETr1%1O+@Privs/(A$sn:@$>H7 fmj8 >Gu#1E ejfEzJ^5.addiCO#7 mIb+999S7% Qy~ UajWQFQ xport al, ZsuV a9T $$ !Z ]a particul^(w !8! c  r } D]|3s Ǝ{& ]pBH ^ (F# tom<d!>)cO ^y k6 =dysDPoa; Y  GetProcAdd(). + ö gi=orm/ F 0un - H S DG ,'r& #;3j1v|,) $,$, )5$ 6 tW J d( ;d @prA `iHRDrPNSocket :>base P7S :51 -X`) $`02>% & k I Z 11 pX  lxi #@+ a{:a !GaTa}儵gaazana0F{a"`ax &py pchapter s ] in alphabetical , describes  #deta il. each t vind7ted E +be d3 t "G are O  -Qpurpost  m will E W0{Wrows Ak s.h\valso  CZ_c))! p[mM.c80;c xCHc"' r!ocK|ceAr5pcKBcPM R0# 40t 0Hen(1 l0n)# d0j# U0 00,08"0\G@3I1 .)$$(Hݣ) @$ݤO3b2 4fP!*~3JAccept a 'o9 \W"/(@ 2N0+NY $,b) ("} .t0kb(@ PZe$p4 ( sm,M* );,T`)0C(T vmiA1AAHDP sc ident@ifyinge] vlist en,)ab "()option a Bf P %Xty, as known the s layerTexact Y , argumA erminbyV ?d T h an Leg M ` ~fPTI `X&B\=63A@P% *I" 5o1), (cres QV" ! a 1\If nXA%*U04$@vnoJ R,HC  O" vpresH0s&vmark. SYYF @returnn vAӺ c_ W3 (A ] F J b'Uqag 9"q vfJOeee9e2 ^^whiu  voccurr@E#ue-qult param;  5 0?con  w  ;  o'A*p ($)   vus` &-] / T&5#/or addrlEh NUL L, Z 9çv1ed( $ N yi"  ?p L'etP29 "2yb i< '}QD$ @p:{$  !xjstError % 2 2gI(}RLD wA?X &Oیgth!& K # 6:Ra%  = J7'a|!aD\8ejKBUxh $"K w  7R}Ri=f% ]P Z9u/P#0) <R &CCtoo U(les* *, Sh.GI lBlC Call#9p,e I9Y c ld pri  G6N$ 5 vem@pty upQ 0 ! %}^ B\ FSOCK` LB0uU ' &-oriC"\^KEI~Z O n8Q ! ,U,**M*@']La+Y CJ&  -31 ?/aD)$$ ) !$ VQw1zcɌ7 Js0soci  0 Z9,!) 9m]w@ i M I 1 ) .i 6I*:' ~Jwh|U xxXEiN@) unboun<G+WC9( Y defs) N:t{ 6sa_family data[14] }q  E~:V[ y ??-6`T E-E6 $G(e 9ng st m; jq Nq= l ^v9nGB, / w(cb>)1/BIAestabG h# F (host /porG r ]B~; /M nSQj> !'XI0FEN > &> /1@J%@ ts: @% s(semplicitly UDPcTCP,D specti0vely @ s %( ce a M ssig itm! INADDR_(ANY 0,bothZ qu 2'@ K [ V ; s fi  a gSE #F[ x v,#x Windows   Ca]iqu T P iy10245000L Q! lear2( `oMAd 2 6: cnec2ar 0 O; G$ I 1# -) gi$$ i-hom`V_' ,-Adesix b (y0outs[ ;y!   / rsh3 +y ilaM0V&# 9>_rA= H'-, / t"IN sin; s0 7al#= 1 F5rA; Faddr.s_! = 00Q(;;) {# '0port htons(al)C00 bind(s, (LPSOCKADDR)&sin, S(p)) =_T/* it ePd */n`}Xp!= WSAERINUSEC8 3=0--0/2  2--all unassi$gn s -Pn U}UA> JUP!~A02 l.&rAA# 4SL9RaA?BP=zy a|!a~@\ej yptnxu ,EACh DoRP}RPÝ % p PNETD@OWNR (See  ] @ ; .)&E 6 argument vtoo U(less Qof a )AB.GPlBlockin4gC(Ke,lThe specifi? vnot by $J0DBN@fer(\,  (nF`&?BC#wCaDm 6}g0B80<0F PM)Pf, en , h=0\$93 CD1 0DHN)$aDD$ ĀH `)DD@$( !(  0N8D4E1 2pr3ـ+rs[o"JCloseset $,D`E) "l3$PMrSP04EE1y`y| n Mw0 (  s[&`EE#>*EF/ .$Tb4Ab{3]#_ \L&E:F@#L%FG9 @K#S{\. More prUsel$y, ~ (], wreHen@ces  0NOT[EIf  s   = u Enam 9 7oaredfn:FkG+ &=25 E7Q2L as follows:&GG #kGJHH ^/F!!8`(OptionqIntervalAWa^Q?Don't GracefuRNoZeroHa rd@Non-&z-pYe>&GpH#,<JHJd 8y&kQ&HK尉4`4&GB7 Ff07aSO_LINGERsCE C 0 0; "sC$ E) a i?A ( F) YTeven if A] cyo  acknowledgo  vcLa "h]"p, mwd  Eo vt*Anf  B on = 3p " Yp t OE0until\ e@xpiresȧjx 5f XbBGL;P   an WOULDBL&pHJ#L8JLD VqQQ1DONT5\ ]>"::2Za!wi7  o 7Q P b1 hqg=q%Ba2lj0 WZ V   crelea 5F Q](y period !  u] \sF (J6L$y FZG*ULL> {Ê? *)16LL. ,V7JRaLM=ZLMJ b J:j %!<Q network 4[Z3~Dy\w6mark8s [\H] uevpYMHNJ dd,d! a{欉 @[mMmE`']7  9t   ,3 M{N1{ ?Y1{N=)$HNN$G ) {NN$ 橪 JJNO14 {'$y,NCO)2a_OO= ^\ @ Ie@ .i,&COO #O[PH8CWNpJwM z9*, / whichEto "&6 &OP # [PQ>Ar3F?K W at Pe Fon . E  ngram st7mZ?*'unboun,`uniquC se BT: RIʸno7!q t&esI [ V WPSk` K`e Y nI/}\s (type Aactiv ' vinitiSCPNA _ (i / @w \)gcomplet  dy send*/ ek qbS1 ]@В ), x2)8' W b 0_rO S #  i v*ET_ ERROR 5FB\& )> r+ 1. U i drZ { '  v Owriteable, or2.RapplicarusL -bdSt & Yn'p^8 qL a ~A (Q T% Y7UR&S3T#p TTC T!0g;(.8 sh1=! failu$^T+ &3TT#SaT3U=^# #r$T ؀ SP$!!9xB8_]HK@Y1_XR>>h=aH@fAFNOSUPPO`RT_ Z0DESTADDREQs 0requ (&E&argument( incort 0h-X %=26P@zBP  wi;3UHN_ not be "FSOCK` Xout establishin@g a &(] '>p .    ] it vco nnectAby LQ .&3U# @V=O n%P!~! a{欉ㆃ 0FK ']#Q, D)  \()_yncSe l4 q1w2q))$=$ HA*qĀ$( (  Pad%1 2!ـ+MU4\:J  which ]aed $,āQ) "I1P`ؓQ__%: D@  MvET sm .k 6);&Qւ#-* $PAE2ւD V8Y?1-xp00s  ed \:The vto Q /p 6A  t$Q  &#X> J@b 30`I> Z ۻ @]z  in0d#w Wonngram st re &~#7\X+ &Z{ :(~݄$CPT$V3>"{")12T"A%$Al&݄Y#`a3=›$a|!aA\Hejzpt}x(: + }bePe _ ~2Y7= He"`P}`-@;<R&" 7argumen ,H&]#W27=d5P~MEE5%E4 ]1xY3,)$`$vv*;$vQI14vvv nameq+$f5,;0)f6__:f5ff5ffU&= #ʈN j!9d_==U'E>uDs4(.)8 YE:A1%fer2&=#2Lʈ<_ ',755}gDK(*TV7Vk /  ]F;/Dor2F]  " paOet TA Fn vreturn  vespecially Pful a m o do9N# H; c5 /1  8 0r C % RH ^3K!%2=hu|  INADDR_ANY, $d  's IP Je5 W^!\I wi cY @essari 9 9 A62,A ) ncI o  d cB0' vbecaus3 #9;@ = @_ un0know[G(<$C> g& "0a @iof fr, {  8g&i#RaC= ,mi(= H|ŷ9bIEY(W&N#av(> LM*Et) o0 an~ &NՍ#W2,=wwzaw-e  3 Ս_1 4_)$,$ )_@$ A+/p .V< =/3 68e8,  &U#yt/ΏI b.}ݟ( i  a - &U#6wΏ` :: W =sS-L Q|> valu*kD-x' *P iW /.` S!x&#;8 p>-!Q=7t"E CY\ )M H [ ( at ' %- ar{  uppermost  '' 6 , as 4 $[ b  O o , etc&" #KēZ A^UGBCI iEA selN' X|>1"{ Leg  Î 5  ta>Q *;  ,  ' %s i Š <0'<0uc ;  B`/a00'Ip ` O`W (,,2defaul"$m{%  'o'lO=W] TCP, C0j Ԣ*"' 7L;F+ēk WbLA2 ?809_d!23 NSockFeaen a .X f0igur = 9 s)GIPse disabl TBOOL  -      o7 S" _o * Nr Ps|4$)7 ready T9P CH)W< Ps S< coalesc(!(֕% 1~6(74 + &hV$0(5%^ %G \=F7F"! wa 0 +!4!Jn._MAXS5%,EG L9 segment P.*5O' P!~%: B!**(/2 ;<Calling  an unsupported will in of Eu c l(O$ rwk _X> Jy @ Return Value ɇ`&~#8 210.RaX=X!a|!a@@\ejpBtx ,~A PRP}R1 A!<RP&E argu " h,A Windows  vprogress"D|STREAM, , are c on  \s  'm0 .m"uMkNll& m A0@3 6`-o0kFSOCK`&f#V;@=lv0@! ']PMV ,, B \()3f1H5)$@$H1P) A$F(  FE5 :B4ـ+/3aJ41 3d=A3481EKm o$t&#kR5<4p 8j # c 3htonl ( z);&b#@2</d<5A<#^2` &b#I[t#+ X&O a  sQl  @ Kbyt(K $Q?C#1 2PQ8H&K#1T,= XIy xCOIICI l n3371E؈67I)$`$eG) 7$GFF`π5GFGG 7GC= 38GGG#&2#N6 . 8,lUAC 7@Ss@hC3&2#'D3/zfCCcc GS& #Xth+GGG0 K3($?Ch1DDD3&@#vT,I=DxDD#D3 |17|? 0)$I$ D)|$  0YQ'5h Ka dot!m e T*=d3&&'@# JCd18>uWv I /( 3cpF&#{\cV/g ƗX` a sexp    d0 &|#bVm209:F bs the by| parameter. !a n ric 0 TM i  vsuitable Quse asq@W6A e 1,' (/ rder from lef4 right)G &|#Nm 6Q WCm< % es s  _ e MVs:a.b.c.d0 a: fou r=t0 ~, |K s oBed, O  8qi  H1 vviewVP Leger 3Iwl *,U w abovppear"db.a''Cis*0M 36>0 c h:!M d1 WJBerkeley, nowh el $Z| X, *p;!. ~&a  i V< 3 HC ! %@ Ks" K0Y@WQ )Class B 2128.net .hostz) /N-_@"0% vspecifi B24-bitV Aɷp y 1 given  iɚtoa,!" rrangem($rJ8 >/lzx #ur3} IGBdbinary $If- cCa,gitimau Qii? p+ i&L3"s 255 1{PINADDR_NONEo&#<?1 4))_^ 43 r1~؈8rn 4)$?$:)r $4QK/ .|8tGX'=R3 &x#}D>R1 2|~ inG&x#J?,/~^` @ &R#W7,8 > N.z'3"6 W 7thASCIIa@ c e&pt !sid llocqd D(Windows  ( 5 c ^K Âwhichy @CHou9F bWg O next ct L @no (R$  28 chA R stat fzK+G!i TNULL ` 5_q4q vmade ?&2# < n1 24%P!~! Z_3 0.3 21 09S  t)$n$@ H)$( (   tK/>/ .^ ـ+T[J.trol of a  \={3` 68 1Jء:0A L$Q&>#njQ{ = Jݭ@  l M s( s, cmd 3* 6);&1# N j>1A`~P0OsQQThe  perform onx ]tA a Q [&1 #- (@Ad be W  ]i .  W get retrieve ting PE \s#5t % s =gs are  :b q ZRq@]2']`@ A@2PQComHmanSeticEnabldisM 0S"ar_" at an Hq vnon-zero if0 vto bd  "it `d kv] vcreated,!jes  LEJ0@d)b0onsistent BSDsE Y $^ block!o zd, U usedu s!c Bp 0*To %, +Iiby r< = 0?M  o  CSfromqq   0 sa ', FIONREAD urn h`# CK d;  rmall"y a4 73\m, !fp Q ngram 5p)l S&CjD" B! P3 [ not  $o BF"%$ q ]11 Q $ [2(SO_OOBINLINEIf no M vwaik$egaRrQTRUEUQ, next8wL jEwill s  } " mark" 5  determin s0 v@any _@@urg6" (out b) n|# ceived (Nota Omix bG6) 6a&4 =&# 2gpatibilityVa sub p  WBerkeleCpar ular> vequivalu$\ASYNCt@ \-l0l1@suppor( ( $JY)`  @>82FAUp_ o$ ll'& E @#Ra  =(*a|!a I\ejp x,HE S I@ `RP}R&VA<R0G]8Ua },L@n 6'XX!7@ppHlic&  B' ] M,& y #FR3S  6 <f= FSOCK_50:&y  #bK S C VPMꀉ`\(![ \()M r, N 7  1 : [ en())$S  $ -  $  S LG , / .*{l3( !&+= i 3+&,   #\[8i  7 >pG[J!ET ~i +q [6 : *I - 9<Otximum wh(ich5 ) grow &  #N2[W |]="M=T=a{<0[s  (b 9*first iwith \"a  e!)pecifi C"")8; # 2$ $s= et  |i.e.X iI{9pT e"passiB'',g @ 7 ݐnXce  uJ& ́- ?typS W? g  ' o'tiHme:a  rr 5fulle8Q  $i  &p#,dJ< F% ߑlQ ttempa  l ufuncJtron0 _]) OI+descri ptors coFm a lq r K Qor28re-f 6k mot& "backlo8g'' resui7p$(pU@2QB#2 urr (siQly) 5A1C-4.3 W llegam(leRs1gv-r 5). d2LneX ue&{@#YU>5qCUX&{#xRaL=X= H|a5Ǵ8:xQ8 K@ 4B .߃BWxTh&L#zTp v%z5خx h]]Kk&in id'gx $?,is "26`pB\HLT refeco  'l&b F &#W1[= bo}Lg9 I 8) 31 0W;FB l)$[`$ ) $  N\ @7PwU6;)1 2 f  @[&2@# N3 @@1 2f%P+` 3 3ntohl ( 3 F);&2@@ #s@4@@/@ .hs0A~s ` K &@ A#Yt@eA+ &0!eaP a @ sin l  @}.( AA$ LXQY!?@eAA1tZ0l &AA#T,AFB= JX!! x ĉyA'xCʼn, D n3AyB1<<yBLE n)$FBB@$Hl92) yBB$<( 0 M]BC7 >&0,J1 7f $&B>C # I5CC. ,j S 7Ss7 I#&>CC #z@5CC/n@HS&CD@#XtCkD+0#(DD$?@kDD1n3&DD@#T,DLE= 3l3DE1 W=EO d)$LEE$) EрE$B dJDEF1tboca \C&EAF#mPFFC V;@ P v M  c( Msai J-F&AFF#FYGQ p[.._p@FG6psNa ed$Aq;&&FG#LYGH3 4@@z6This k vuson0ngram stre \s by T 1@  d !p{GI: BhW[mM1Vdof ', as m@uch 9 vcurrently ]uputhe Q fer vreturned. If ]o@Q  [X o(socket )  dat t   3 sAbe BA, o vextractfro+I@enqueuHa,6 PqA vlarg #P,vexcesso lost, 8&HI #s>IvJDdd}80K8] @z cal@l wait@Qo arri ve A| v@non-bloiDngtk a iq  $QWSAEWOULDBLOCKE ()z. &IJ#i5vJ_K@ NkIt 3l! e CONNRESETFlag ! W influenBcQs \k{ dQECiA  kare d g# ] $ &JK#R\_KK= HԀL*$@=ϒ 2 *& R*K L%  {v7vKL@> d"~2T:20receVc', it l:& LL#tRaLL= t,a@|!aK\ejpxu ,y LrMF0 ZA0R}rRps% ei,<fH.GlBBCCnA ,"&LM@#erMlNd 5%Н@DKEV p/PXFS`L(T c H $ 8   \ Q  8\0 DB"B&MN#_nOlNOI b!eÉO$4 @L j J  \ 3 N3O1 <>3O j)$O\O$ ) 3OO$ jYY\OO1zR70sto>uy,O P) "I?P_OPP n5I̼ii mbkhI& PP#wBPQi ~DBV])bm optional( \ 8whi wi{hol#C up D hA= 5&Y@0)&PQ#QRR- (QnRemark ZoQ a (possib ) ]0cap v7)0 o 9Q2TL fs:/LWa^^^^vr^^ ^da^SIOC@ATMARK< determin5 #oo c i $dr Ӗ m,1y; vfII@ e! k*&RRXT #2TUR rR# vn zeroM },_DGRAM K  copiC,e p T i & y vinitializ,` Q   vmodifJ8dicat# sp njpppspp% o oo[&XT V#U=UV@o {oMo bbf s 2wwuhencw w M E u uu& VV#D8V3W. ,$tt fHV{W2=˙ *3WW% t{W > J  RniW O&W2# Ra = J%Pa|!a1\ej ?0t@x ,f2SR rRP}R0% cP A<Rj&Eh argument h: b fer  U accomm odate ..D ?call< ylBlockingC ()!,&y#FSxx Fㆃ !e!KcAa110 @HFSOCK`L(T c  j@ 8 &a\L  28\!EWSCONNRESEU&y#kb?xC V~k"!~!  ÉePM '] d,  \  331)?3A )$\$ H&me) 3$((  P ^k\1 2R#ـt+M"JM of mor\s, ( i: $& #J b;y@  v  ( Mnfdsg B@ 1struc *  );& #хZ@ 991A~.$8?p#05C 9d vigngd  d Q sake r0r D6optional pointqa % be pQ h> e`rrorstximum 0 Q3Await, NULL Q &@#y2qr2YEa W demin$.  \,c 9on B, wriYD +ThjQa  vreq0uestlvndicd by an A UpUf (vupdYrefleR subset sA# 3,F! ݁L A1 sprovidQ K%@ av4patible Win_Berke@ley pm = v,l@ly ,b 1wyA680LGPa{X'   P!,P#wC s8 51b ED I ]u rrS en, igB asa !' o R, so ( i&Q S" $Lility  7o vavailc %Bor _" 'Ґ{ ]e tx]PW)2j vguaraY"C! {PlyE@ wi0 im0mediR 0  B;  :p8M8'.C o a!J ] Vd (Xsee\ )3k a@}gINmR5KbiIr"9BR?t "@2" G '1ishvE3SrF7B.051 : =A7B[I no oH+x fDҎa ).]#U a any  A4i 瓡"  61 ! v FALSE2%a A"breaV 0 ' duKEEPALIVE ;^3)^ }@ c3d.e'paon1;aU^:wh8 @Г A Gv O!$ Mno BnXl *' 3 x4'5EBK`Four%%E E $ o  s'" $( i  v64%~ 6#defin]` hpiq#i`ncludx.:)6B&pres o1? ; g vfollowgo, % INV+D_;$tcros 0 g^ r=89v  AB!D_CLR(?* $_ Remove c)Nonpzerop( memb L# wise$k kAddEe ¢oh. T8  >wj%U+nu AY " 6Oa   c(ria+ Ck  H * 5 qretur(g 1Q{0, 0}@.GJ s)"p"h sO c7g DŽ  f ns  [@ KQ apply*  + c  dow@s  yielA(^P$ \$.(9Dt]XCX 2 )= C1} c}D9 By tVa Y6 0]H expi %4_ERROBRI 8 ` i v"0l { &P_#Ra9= J/a|!aT\e$jzt x4 #_@L fG4R}R) Vd% hF<R| x0|- f.G @lBlocCall ,*j']R@Ǔ/ .FOf  MntrI F\z[jAP p/7! ']<,)3,-,`    jv )3Ǔt1 9@tj )$A$(KH) tƔ$t(  NI1B6ـ+cS<51JSa Q$ $&Ɣ:#BmY Cs g $ M ( c i JG );: A&:2#  Q p&PA~1p@0pSsa ed \.nA fer K o be lenqin + 2J&&2#:3D V0!0 0\ej 1 2is  Won0ngram stre \s   vus write outgg o7a ;@2@,  + c exce IP Q = vgi@ven by DTrIf1o vtoo @ pasS  = %YWSAEMSGSIZE vreturned1~no;ransmitted&Y #&Z3N@ jM"_S`!"h!tKs16R,Bii  Dof, 0&2 w vavailabl)# ` hol6Ab,=will  AW] o d Oa SI/O IOn ӎ!  s}  y1  , 2[ Peign E,() RFlags K W inf luencs k k{u QE#"Ci  kare d1 ]   &Y#-> J[ӣ#@HK尠 =ϩ2$"ubjetctrsuppli gno f; seK H &)&@#`D3@32SYd" .) a 2i}${H" ~l&#SRa`@=R%a|!(aDt!x3 ,yUQF Z1R}9R8% Q<RL!S.GZl BlockCa ll ,&w#D_Qv >2@`5K0 &AOEbufuvnot3 g AK[ v{P>ThQ'|% m Windows  @droppit,BQ s6deadHHFS@OCK`L(T@ c $ E8ߠ % 1;2\ @ 80 '&"&w#nKjI b'! É!PM5K ' dY j \g31, )ѡAC )$j$ H) P$((  JM91@ 28+[#U # $&_#,9P n,Ip`, l@+ @ | M ( $8 c+i eto to( );&_@#Q _@$Yg  &Ѐ#ih9: DʏJ4  ta0rgetJG18n\ &_#,+9De eeve*ez` `ut``_``````Z9VransmitteV&_#}z VVJ<@T:66e!n9;  Nrm yY k0  s) ,RE) E yI" %^2*^2By ~,!! c(bs1U  va"ldy U On occass, it desirL# "re-use" .  ' vuniPly d !combinu  eb vno  ` % \s2 @localcas  60 I3inWindows   " R 5 !m9; \a$*TƝfq C!!i  v!rpre atb  m1L: CreIe unnecessary Ah0arml se: CnotZ$ / re.K#~P  O any \.5 8 AEbe@applic1  m A"keep -aliv  sTTCP )n|f  `= c E`Dps?fBdo."g$ci  -spfic  5F44.2.3.6qRFC 1122: Qs -- 'Layers`rIf'dropp o2Ӱs"?< v$f9   F  HE _NODELAY BS=E=s %redDuc sU J Ba !ferIunacknowledg o BOull-h  . /s! `imance=# W{off1 7@ %P= And!g sovwemundJtoo d[ I /=a signant negve YF K0A=6  wwhich ]  G; '  ` * ":yhH#t D$A c ~#uy outpuoebug 9}0n QzC2PW8 ٛ{b z%& #Say`  7 >R6m;{ԩ ' os%*  ' 9PA~Y#  p G*09|!9i@7IP`T7 ] 2Allow   Z$i.Rec(ord1gd ;:Don't  QT%SDUequiz5(p v7qGp%Upr0e:x  &faaSend$4 L sp 9As l n Do fo) PNq+qU (ILJ0 . @ti' ? /&D|STREAM, , , SO_LINGERو   'Hbo \FSOCK`&#nVHI0 b5! 5`[mMPM@']&N, t  \()"3 {1ѡC{B 8)$H$ H ) {$((  D 8US"1 26ـ+N&!.2JQ /or gOj$,N)uGTWU8"7^p i M @7(  i(ހ)j&N#BzH8 @&_3@5}sPvAP flan cHrib wh /will /ed,&n #lfH2 4=9 ^|62is  = dis. Zrboth[n5< F NT }! v0Bv'Z g %ld,B8_9 =2- ! Ci؏ OE$ePxhaud> U8DP,Pngram?T 6cO .ICMz / !`1 WK/9|,FIN &")! 2  *_'MzW59!/'٪Vtt  cvh= attach-A ]"/` Ovok"&_ #\[ @@1?8P pr rd  /j  @H @3 4!}@g application 5 crely uable re-use a ]it oshut . parti@cular,$Windows   vnot support Jof g Y\.& @@# @U@GA>@ Ju PY~02p 8 ly&@mA #z`aGAA=zy a|!a~@@\ejjqBtnxu + }q _th vAPI}mAgBL fD`P}`8% QP<R0 1 fe.GlBlockingCall()c,!HFSOCK`&AB#J$gBB7 >H!! "PM ", \ 5B C1 D CN8)$B5C$ b~0+ C`C$((   K95CC1 2Brl2ـ+KX]w!JC0reat1# $,`CC)H "2PJRbHC9D@=]vv@  o ]( Maf@i & $);&C_D#l,9D>EB RY2AlppPfddres@s Y |6The Ym vPF_INET,  vtARPA XA ' }Q QW1 % bW \, 0 ifldoes @ cwishs@pecify $q&_DdE@#q>E F2qx4e֪" \o]!@ 0ied >, o@ ' $=s  } Z%D5 E 0), D 'P  vd?&dE2F#? F.G5 8%1Q 6}K % uaz ] ' _a ! ? (un`in B" + ~B % s 9p vYv"c ommunV''N0kto placeLDg |wr ^:Dh2F.H5BaS~22c@ExXn$'ProvidZ d , e$-way&-baA   an  /Us9">4s ngramFs&l0,( uni'fers?a fixB(typl T) dPUDP fT=.GJq {b'! eD P  `X##7 'Ӆfull-duplex1?A  ]"a c@onnect qoJ"  receLiv7it; ' adherٞ vydub On2cPeP@ r'_ %0 b00a ss7etZ "  !\ Spf0S$W immen\STREAM  K)lostC&datQwhHichb ۨ+" wb ! N)D , O'1:onsbroke   err@or  iWSAETIMEDOUT %.HKc0 K(uj5 KSu!> PkGB  \s sendNYD 0C and c(y D^ !jrI_h#z $ {\ ڂH@j2la g$ Sc(only)  =a(JK$~ M#KNL@> 3*\& reencGa ig  vretu$rn0by [&KtL#RaNLL=+,EtLMF ZRPjBP  &K@ 40.J6 B^04P# rg.FRwro ',V7@ %G E&LM#MN ΀<=a{ㆃ ÉIK0F`805!pK5#K[mM[΅Q;) +,a en/ d j+++*+8- ta3MN1JrO ENOD)NO$ 6Ϋ)N-O$ (ΫDOO ̀# /@`BZ- p`Eͮ!&`/ۛ 3`mJDm@` 0 :#f-getbynamex=U0PP @:04-O&P1p F&Pt)OOP$!aJQ!*&PyP$B $ OZOPȀP1 4= 9e },yPP`)4lgP`Q=zM b* &( 3& ,M&=&PQ#`Q RB& u3&/* 1 K0 =qX -+4 @es]&Q3R#t RR3 47@2K6M M 1 c@ w3RS: By#x*C /Q{y h_4 2@@;}/%RMS* $Ji'тS~s?SFT< F-P.<.P Usa ge0y@(PC).a  ' uW; Window  valQ s .4 D ?-,5/p4.A Q c&, lΈ `R&MSlT#$FTS)p 9 tpcro  d8efi~ [0]  o"lo p~oHint x )_ H? )q4k.FN + OU mod #a < alTSOof vallocated so  5a 9 it ?qissuing  .&lTy# %S > J&P!(~-0(2@0) the ent   M a { s be by jstError()&y2#Ra @= a|!a@\e$jptwx~ ,26P nRP}R<@ 0% Q] <Rpf~d|,A Windows  vin .G#lB kC)J97P >r!! R-鉵), 461 G7)݂$ (`6hD*$ ($(  NZ݂U1 22ـ+\J 9e a  $,)$ "3PMSTPUՃ1yyP| c 2* ( 3 .);&#H-ՃC/ .Z3Ay#` 4 n3 / &i#CD VcC@40_byname2returns a Das D H{ODc+D.&i'#2YG \:y#DZ_DPSa@ ion Kneeds q IA%#  + c IP  s it. Such "5tre%ex@actly if an ? / 3appli X0 resolve Q 0 converX".@ 퇉}!obta6 E&'#Y >?Kl&/ #Ra =<U/&P Nv aJ&L #J8&74p'սaf3 LɈ1p  HɈ)$)Ɉ$= H ^EHU *ReCQ /27  Mgethostn ( Ѧi 6 ke5 :69% Eo ua fer will 4:6q pZ $&99 U(H U M  e@  /  v5 q TW" depend gx -- *a simplV ., pful<qualifi  5 9vguarant@s@ / U pars2 \ 5"!Zr(eut0tw0ise L VZ\<LK dy$:G AC"*&E 7@ vto Tc :P$Q@ Ksubsyste`m 8ADK97*4J* 4D 5Ľ1  ǏA())$ +̌ $@ &QOco1 2L %Z %]# #, ) !-NRo逍1zVj&#D(S/ .P]Yd0&y#S8B W>ʐ.M ure  MR1}s Y %P%r&y #TXtP/i TS3 {p_  2@ ;} & # /%tɏ* $JM7тS~M?vp98 AOO+A+nUsage0y $.Ѷ^r,  &ɏ_#9B&  .7[a ߅d U o \5ѥE + Oatpt modif= to Cl  6 mo% aLe s  ?(_j$ Z"WB> 2 ӷj&j#gRa9=g dZ5\ʅsJ bf}~dG:&9#d]=A@7 zH%Gb6/ۛ jyncGetProtoByNwJ65v1 < JvW8)A$ +vʓ$*Oe1J  ,ʓE) "NI1$( M ry&E#9I3/f7`A&(#v@2k6ZɖZ">+G_({O fphcol &(ĕ#DP& da Ѥ(ĕ<$ǀ>фHo(Q&<@#sRa?=x_s Jp [+A | v ? AK<?W7 >xP!~! FiΉEͮ()@, 4 1 J K))W$ (~kD*$($( 0 (PTn21 2A ـ+UH\_J # 9e a # / $. $,^) "%1S QZj27Q  i * ( 3 . c ");&^#  0P#W |G1A@~P ' A po@inter )A4#~! ۶ he one . "0 0/e&#u,9 @S10ˠ0 tM M 1s c@ #z!r[k2 (4sp0 {  ` 2 ;}&,#/%* $J3тS~{2v"7@ J 32JM4  ɦ M  { s! /l&o#T_I@7bb&a|!aCDthxWSAStartupp ,soHJ` b4T}T0% Q <R~d|,.GlB2kC<&&n#i=HF \ za4s'Amprirgetservbypu04n 18< L ))4$ * ^$Rf41 827 },^) }}'Z]67}}( M }&\@#}6 W};}} O}FEQ"<, cuw'7wGw7 xg&\0 #Qco =4lQ9kmJn|' [ eas hQ7&0#Q & a ion m m ne(2$n ? LzAno1oooeRa2 = JJ%\ejuPu HqD V-:H@2!!BeNvrecoverable `a XGWJ& @#J87( p)"lL/7%F1" MF17)oP$ 6-(F$ PS0o1 '( R սa pGb6`&`T&3P @`']M`RZ`$'gP`Kt`I(Pl{@`Fb3`})`"P) IP4-Q7ZGPc "q1 W@$ +0l20r ;P7XetLastErro``G4e1 Ne 5(1$La^7{j*e$4,!Uq1e Nn @- O t~,E)h>V zGMi@C  yncGetHostByAddr ( o i  &alen3O&E#3dr ?3?,6)ЇY- 5  wheO  x! . KQ  es { q  + 4 QM2b5o3 eiv ent q i < Q a 0 @ vbeca G is bW] 0.c B` o=ferenc= l` ] a( & s #F A &#  >M M3M@GMSF8 h_ vd*{rieL /"jK9QinitisQp >:-, cP & #Ul (?b ͢`]a Ps#{ gumE"MQ q/ k j/16 9 E rAn P &  (O sO  ,S" CXMTo *Ֆ?4 !:2 5'Rפ &)t j vENOBUFS| t tha70T its0IvDkc R ,zS  9E no Ws %)  !D@gth -fro&mgQ! aQ as:(#%A $@{Txw(` ;GETASYNCERROR(lParam) ) ,c# & Ƽ (w 1&w2# X 2 2y&P@!~-4@ b imply failure &2#}LES@ t}~0RU @(2@) )u yncGetHostByAddr(,,l.r!2!s$The fer this k vused b$Windows   construct a ent  Oof o5 u7@ !@ To a @C bY  5 +a}@<at #(as in )&EG#k0!@ N:aC ahs `r2 B *@9sG, (4A@ &#}2Md`tg be % an  Ps@ . AWabove, ( -from0/,#Pa@|!aSl)@Hu/P}/1@ <RBbpBf ~d|\&0 #wQdollowing  }Y  k ' O g c- B)8F Z5\ejcCPx,@,\q3{nHot    re sourcoth0rai@nts Ì&^@#+I887 >p*%*! @鉲$0), 45^1_ % " O()5($ ĀP7ed+<$ 444  !]Tq1 6ـ+t 1JQ 9e - tD ,<@) "C S؉V~:J bF@#3@ , ( o c .ailen);&`#-:` H_-7A-Tp00F tJ& 5receiDvez n  xAr x5/K3F0 n6 q i + Q=V  vbecaG, ҆ta c v  o vre$enc767D_ ] x ֆA &` #! 8 l(͆)_CG_trie /c @Q E 1'urnu!, cTP  c id$if/ h!E vcoj etedo (i f ap _L ex( -h(, vs5 x@ & G #U!  m )@ Wi' ] J #{)='ErAn  &s @  {tionOn.  M؂F j j U 9 5$)I N &# m<,E)=~J bF,&E#w`` 3p}Ivd,g gff\ wjl8vedrr "xr rL 0ArrrD@qqn` h hhL&#`:>` Ju(pEͮuXfnˁ Oversx__! s,c5 L&`#ZY:$@m @roi@ NJ v\s 0000W,,b,\8)//lR//IyncGetProtoByName+kcall 7Y  QS 9E no WJ 16 L11r#! Eͮ>$}$, 45lDD1) " QDP()5(D E$ PK7c+DKE$(4:4  o!]Ic EE+@ &c]DJ % 9e .% s- t1KEE) "44ـ+! ,EE)020ؾU~EoFJ b )C]@&#@   ( o i raA len);&EF#bsoFHZ 5AQT\p#0|tnx%  m d, _ #3 receive5q i + Qu vbecag G GGtBa c Iv o vreenc6SNf ] supplyCfG>A &F.H# HH> J'G/ۛ WFfr/ _JGStrieT1% / s3protocol u Q E .0urns88, caP &.HH@#ZHJm ̘(@ *8Fh '$ Ps( )#{(argum M asynchronous  n( k 106 V)'E rAn m &? & 0 . dOn ,՘eb W M ո 4 9 5 ɹ$H י&q mS` itsz0I,% kcall X \s4 9Eno W4 m c '( a  as: TxH&K( ;t:GETASYNCERROR(lPara0m) 0 ),cJRK&8 5X(&KzK$f E[F+nRKK2 .yID i n od  initiat$edj bF &zKL#RKLS 2ۋ4u[I] g4 c>A,PtLM2 K_# least&LM@#y[.MN: |l9sM@N,^[&NfN#3y@NN2 g  %  ?a AH- %-from0 /fNO, >}NO@ 0;Non aNOTI MP[+OO&OnPF ?P`,K/O tiXnn source o r 0r !J;OP7@ >v#!<>4l4nPP1 3 k RP)5(P!Q$*PKQ$5 + lMh!QQ+ &ХD+D #[ # l1KQQ) <,QQ)0 QRP nM-OaL# l ByName c . "a&QR#}kRT }6 L5;II0A ! % &5O 2" "Won? 0 1!LyQQ@ F G, ) L &R=T@#TT> J4mJm.Xffunc D vO u<1U\&=TU@#UTVm @[7TL, vcompletZ ? +={' ele+8@Gq< s>ALL ; :yF o vinadequ , it p {: m};TxU%W(  [OcVtW&   s wi  uQ  (%WW$!BtWW2<5 !z![&WX@#LWXS m <{rIt  W match Dup^ ds, \rX5 8ctn=xF & Q ",  K d A  % 5  be O 92 will @ f tXI #O   %I!y/@ X YZ  o vre1enc6[ U ] a bufFFAA &z#E$> J 4jVmSDIvv _IG re`triev ) @u Q Eh!urns+:, caPe3 N id|if . E vcompleted, (if are _L et' -' vsx@ &J#qU$m _R`'@R  Ps#{ J<=M'E.rAn  &s  O&!On , c!kMLa \"! O !*9 5ɣ ׶$&mT Xits0G~A supply ALL ; Ih yz&o vinadequate1 {; LmDcN( Ba/ as: wxJ\( iU1GETASYNCERROR(lParam) 0 )&BUFLEN' ,c&` ((\$ Y)B2yy bd &#?LS t͒7*'SlU02gh E ] i'#Qk  iQ p % It @w a3Y) _V ;u" E fPs lJ%r24 7 A\to =3  NI8B7@ >p.) 2=c8Dny J\ o ,< 9 A re5a >]r l2*.:f v"$l-triggerred."x q v Tp  vst\ g ReB+ 9+-dr J  crn $ u oL w$g  .sidR Ty: BHNd ez3n7v zH4 x .4c> ] fptr, 5H/d50 NDS-5M | I<14+j$ MR80With  c$ = c C]2o K$--# @Fyro!> } '1@NP Gmp_\ SuS=0wisbhdis|"0 q EZPH ɰc u 1tru$?b?wh?>kRb&^@(U vmade-b fT6wa$ce 5 ROw rr) y)w  I }}gO'/'_f`'?dAslighJHlyW0RITE3V ]` vfir . u!;@"_ PE b^wbecom _ foFrm1I3.2M0m) /O!  ! Af a ;*G3`T@aga Y4usPfigu? tpar8 6!IQ. .  (elxpq 1) e>/ _  5regis U / ? b !: % in&t$ n vto03- _2,G  f;/C TwCKW_bw_ m@&  §:bort.BQ9 vuu#$;E=0WSAECONNRESET3 \' { ] `&% sockex 'ҚItsag 3 C~ #d#@ {e7 bTCP dm( O#+ 'go] e FIN WAIT CLOSE 0  B env? 8A   F=cT P0leas rC*-ONLYiQ m dF*. I)/t NOT Qan  indicate .&)U# @Ra/= J%Pa|! a1\ej ?0tx ,ZU7 <RP}R <RO0 @ hb,&'#0 .!9!al  Db=% S Ps a .  vextracted from  in reply _ g Possible[ Q K0|t: ;' 1 2.|!тS~a%$r279D@/rd/ s, (+2q@=q2  D|T vA/0fap!7> ZE$s vrequired&The 7arg umentincorrect02B6`@zB^onn)K0HBFSOCK_ va D, ca \lXouXestabli shing&&s@#L1|% $yb9o"Ev0;1 26 :f󗚁dC"Z!'p@set by ( >@  time ot@her :a(%8a$pO@- *2A~AYS#%C-C5C;C15549f|0 0̚".a(C: BQT$PT~ $+515chs @ ? Wows S uppliU  ensur {  ~a i * @Yt|q,Dvp@ 5us/w <D *'p ,D0EFqc2(sH:vx] vclosed,J 5purg Q A  a?@ion +  $eive, B o prioq@3&#3;c1 ,5 ! K w41 A UY)5(-$ PI67Ob*W$(444  !)SU-1(2ـ\+|.W&Jncomple!sO s $,W) "eVR؀XXI. 1~ MlAs0yncR1 (@ );&T #FK.  /,3 .8(`% .j &T  #jp  J` bCAսaqIcE! func" vdDcan0cel which inhiti d_ u Das( *{Pkdsifi20\ ,E, 5*94QA B&e@#p(  % "J*  'jt!J  > ^:E2)z491 v00 if     iˈturna spec c( s(* 3 l;$&  #o  = H@6*W&o\at0temp O! 3  of Q % Ns Firstlyn  @dealV *SeconJd,'a vstill +3+4vVsleaC X1 y1IJ cases\  & vn&o"j  ) [Trivi : 0? alway  id P.] F I}dob Dcpcri  w  65%  0 , w 5treat @two S &  @#Ra -=x]uE ; D8 ̷ Q+O uD"&-#rYV` z >? R%FiΉGb6P)s'cW)\,P @K@P@)B1 j * V~DAyBlock Call()5(Y$8$j[_c15wgcvcuC n  g,);I3c( |f7 5 }&@#V{T+ &  o S a   th*i`r B true(2) A/Q|c7L7+" k(' )ea$'Bw mine4 #so^ + B$./(In +@; c O\ schedDul+ca(bUver,J E m b2ob R Pd"k BF[ d l eB, bi@t c^ O ] * ~u O'@ = f),6d 8Y vlike9*noticea4blO(trie opel Q ](  \>avail6tao %>  XT@e xa{欹Rr2Qý   cadsB ա ph}6; c befo-egY 29  ,  婐@Prv ](deterQV?w1 q')8$au! perm u { ,@Ycall ,  on sWindows  s. an  , it +be ful c d@epend < ing  a ;applicati[ 'by /  o 0.,=A3 4!D   comprimised Legrity of a 's o i ,! +03y  ! &@cA# H@=AB> Je P~A02p@lBlockIC() v0 if @i vret urneda { s  h lb&cA)B#=BC>{ŀ 0@ $jtpossi@ble K1letes q 5 roces, Qoceiv e7[fer at interrupt   v}лthio wi asP had Oodi suc0ceedH4case; know ʄ >Hllvto Qa /from&)BC #pRaC&D=po"a|!atB@\ej=sBtx  ,XC~D4 6O2R}R <Rf0 vno bB 3 &DD1qA F WDL 5(~DD$@ P,37d()DE$44  6 SRDbE1 2¤3ـ+fB0JTerminate use : ,EE)H "$4PR*TD(bEE( 0~pMWSACleanup ( });lEoGT v٨3rDR!bquir\ performXr(#ss7C2ȧq Hv$ "H;p >jf +deregis caM  a  fre behalf DLLrAny  \sre  q 7- !#  F  o   E ced--th  vst` (EG% 16V3 oGHM h ġ0VÛ'a WFn ge߁*@ } fl!  do 0h  Edecr@ement  ^Bscou; A na'  Z t<}()d5rQQ1F YQ r()5(QR$22+QDR@$g $]QURR1ݏ4G)dMX  d,DRR)23;,RR@(XQ$s)]}RyS0 .C)}m : e vexecu:( / Yc0ompl24&RS#6qyST,6 6DTt i vTRUEy func awaiI*  FALSE&S6T#WTU@2Oc0qi  zdh4 ]QPear\ * ^ though!Ns" #9 u 6llow $! un  !pos`sibleY G issu {MPnQ? @ (s) P[4 s HeS2NWs certa  HTp wh>i "1 ҅i O{]hibits  $ - Cf&6TU#tfU . *=<7";P`YLU Q4U@1 D  Z@)5( u$ P7Windo@ws *@$(4.4  4\NKu/@ .^P ـ+ai0Jzn -specific p8%0 04M MLCS0$8&K# *`rI%< H]00i` PROC WSASetBlockingHook ( 0* );&K、#`gCP/CC1A~G A the procedure I !Ok bFed.&i#jCӂ, &!1!A0= Fs a Qna Bb  5use implement ]k&i#hӂaH ^ N2  #b  a  byH ua/"  TDk" gives   execut!Zown%at " in "a l ,I E n er> vequival)1Mpseudocode:P(;;) { /* flush s Qgood @ [ */0 (()8 =;C`QlRCall() DPancelled?breakD see if  %=poteg ,D54 6W9R}Rd <R,&[#=%51 2Jm;! :"'25[͌1b X [͌()5($+͌-@$ (,l]_i7 >P0o>! ! F#>g,,-) "f,,N71\jna a }Z( MiErrorI,2`)yy09 @31ȋkL*aO&$3 tQk%6`  | t Owill opverrjA "% e`2S; F1 j2Q%P&y#-4S( 8E5!ydaRy. ,N[I}32 . k(! mpLast" 9G, (?{FNongRa=T&G#s;@1c>23c7cd(3 -1\ "\-5(b`$__)-$_$_d7'b‘+ &NGPSQt 5,) 56,\R‘J4 8@2bp5K  M8$(  , LPW@SADATA C&p#VJF? L=DтSx3L( u ! Rer Up? @ or u(revision) numb J-- +@aj+ 9@ o 3 vto Q u&pl#uF=@9990@9% * v Iu k%* DLLh;fpecifC%1a utrie  { D+ {w,u " jAljh ^Lʐ@^%@:`KOX1}$y̿ @s c R ,A d{ ! . ' eachUL iconfirm- c ' yl cceptaHble Up+  KQ\0exa ek hu 6  !Ghigh 嗌I  / Ec sunedo  ;s  0p  imum   @u E0 H0BG! .0=j C  vunacceptable the , it 5   QDLL @ fail/initialize.=h. * ! As a W0a Windows  support @a ;of v. application  eKPif vany overlap in @ u :s;dollowin g chabgives s h works7co njuncg @ 1 v: #}YjN l!A PM  A$ppZns G ~QEnd Result{b?hG:@ D~y!Ȋ{95}z00@ R  QN#7 >FP~?c^0IO0R MGMM hA €'0PL6p--- NotS` @2.0@1R!7BqLP MP@ n_4c47C ?0 V#g_a s uB a "call: ;wsaData; Merr;|= !1`, 1 ) = ( , &.@!= 0 ) { 0 ;}~Confirm` U4.*/eP wgre0aterU%/* 0 1.will G  I v uweCP I0`0PA )1 || N HIBxYTEPWSACleanup(KA(E X@e1_]E5e1Proceed;AD -bE0 s3 @"~Make surL%` v>=aT1D ]Nmajortӷa`intqѐ) :2 ! P'a&pu"  display6(possibtr0 d)xa .&Sockexarele   figurI: ;e 5 -' 9 j Y; [ staff:;d c+) B B, &w([rStximum s) \lK     +a pool[+Q0K= ;  /$ -$ss C\!dnumb  reflec1 Ab  M q 3 61 s crudʹ$Ff 8vus!-$ example,mXl !  I edtf Dvl 8A5 Ş  9wru[ [ reQ3p (Thl OA which mot V.) Obv0iousw no  ӵ ڏZQI*  ~!8TB@)2` 25-4$ Qr @ ZUDP ngra ey d[eI"imU  vzeroIm -Bxerk5q - <"A8192.ps (M1^< :A 20 fQ Hd, v ʂ:_! ssemf#D1# ia>Wo512i regard<" 90/yinadvi2ttemp2tse  qQ larg= Ma3Transmi (MTU))' Ju2e$do c }$cWQ0S +oB )yB,Z;-ZA far V r -spec Ho ^*s( (vbeyo 0|h*''h4FAm ̀Ip 0}_` /@apE_ t0 oD4 ? obX!@ϩ ssum)vG@ ;Z.notx   tial_*.`6k! H،){e e"ye 9@':third-party |=Jb\Zbehalf Gv {.0 timne"J P:ddir %!0do ide0cremK9 ^ounh' M@ ;0 de  ('%{?&m@# <CEp> J*B" L2 |Return Valu[ /r JY bP  vk~D_6kl e =4G2&Q&O @ co3 "lal " 9 vstor&#k: N4Q+A3Ths `2Ear * :2-q )$ % H `dd< 9 0 SC20 4( }},}, b Q[=) &k#(Xw @2x$a|!a,B  t = K (t By K| 3 4Pa}!a vnot -by Windows  0 The p uD )80 8 DLL.& # |S0= J` !~! eÉ5K@`K , H  [5G1X ]G()5(|$ P9$7aR+G$444 0 ]HS|1 2!ـ+b jJp3$,) "U1P G[Q;3V(0 fs M( });&|#hV, & o2 PIremoves    o Fed reinstallsT . |_ mgM?1@K!Fb3v #P1@"!  G ~ , c prev0iousan wish nest s - i.e.abla temporary$kn Oert<tN ((whe r one d jearliH)gt +save3 ` i y!@; Q~2multit hreadm wofc as NT, U w"}Cing WSAUnhookBlockH () x!D  )&#H 8 >[2Al&F#Ra =8U|8C\ejrptx$:,&F#<"1DT"3 -1: ^-4t-Z' R&t$)-$hݤZ0 .v&%FM va  "{! alov explanat0ions war,l@%acros!f s3Q0 0.EY{!&=j y {bE|A  `3nwBerkeley Error@Intert !.EINTR4ꁡEBADF090EACCES@10013.&EFAxULT A QV$AL%22% 6EMFILE %0\lG35,` 6 "vurnifyFxk vca9in LREADY\ 7\ FSOCKENOT u8u p$\ 8ASGSIZ 40 REPROTOTYP01 DO OP 4Pf= 0VhL ]JQ w .>"@LEOPU PP v1Nd 6!V 71DDRINUS151051  ^=('J6 .B:b 2(EHOSa64As n*x^ 3" 91F $ K vunuse-02--> H ap*pxa03a0k.GfPa  AG cy"eY o Xp01@BSDoTRY_pAGAI$~ NO_RBVE.RI$|DA TAI 36 t 3 6L!A3#,d> C T|㐔Ң]u\dir; % @s vh sLenol c on& y dCJ in sis#y ps #& ^` / yaf3@thirdp/' ' ^S ets-spec0ific9Pfourth@*@~Ht, c: V q y t n7 4var :s C A:HDomaJName Serv$ic I dBo cus DNS,Pwill 0 !' gene0ral,  5iW qL}= +3th- $k(n, etc.) cZ,D2 W#/ # vn-o&plal>\t 4? L? pXZZA&from]) b^DBDgoifacbYcomput;add 0L"normalN"q i5  c   } vbecaC    N9 y zCh#~ :B ,  hand,aBa fuO#FQ nsu%,  3 g1| _g-)4@$$9{6K)g@$(5NG; F>2FA [1 @ - &-# <3`1N``*-$(>s)`@$"0/^y@%K> whoa k sup '0 ! + @MvigialG  a s ΅]$t] G$-Q u $%  es:;@35 :6f::& $84y$Qh*=0Y;J( v72ȉ}netdb.harpa/t sys /time !&9 @3qiD# le \DM ' , 0ant k ) W%Nz |w D(lic-   igd1  u 7'J @1Xa @@k;3 @*6@$ >s-* @c@@$)T!)  ) - &k6@AI@ `WZ@ p{EQ E a sof /s from W@indows% s.h{@ in#3.0 SDK (Software Developer's Kit) lacks a #include guard@, so iu0 = P]PasX ,# 5symbol qM@ing$@2N:JAc@A7 >|!!Aa"#define $*AA' @PA~MAeAB- (AiUsersH 7QC1 later = cdo .DLL sMUST NOT  cation"thi1 gbinary Q . The 0ant l, k  ,  + -across y rsADU@ x#!OS!P4/* .H--u!iPbe W  * ǫ4bv>  b |.C+ppartE-3(c) 1982-6 RegentsV California)All s $ 6D}Berkeley License AgreemG ,ms $1Q l/ UrPub@WIN@DOWS.H :1 #ifn""%I:0Basic  ', CEsys`/type / ,H G u_charB;@K 6 PG M 0P2I 2;P6 Q 'ABGIEObs Href socketxp1ș`Sc ]>s  s pe 6 Vby [q T D he 5} >= 64KRCAVEAT IMPLEMENTORUSER: THESE MACROS AND @TYPES #BEINCLUD ED" EXACTLY AS SHOWN HE RE1QH 64~FD_SETSIZER"! A{Q 7fd_count;+q5!d -A?KQ 3@array[`p]?an ?TB} @exn M(SOCKETKA*)1DI@I'CLR(f( $) { \ 1__i; @Q( @ = 0; < /$++)5`, (P_set #ZFp] ==&Q!W N@\-1"l H@"+1]B -}@-@br8eakU8P@} (0)MABM]<)206\++]=fd;A_ZERO(Z)( +2=y#G9KH ^(( b}~B) p*)gU/$s)$() /ime.Ustru%Q Xs tv2cYs sL &Pu'miASecond1 }YeO" G $!NB: rcmpe*c DŽQ <=.DH( is(tvp)r1|| :H),U*, .uc1tL @H-y0&&]@A0hrclearD0:PMIMD xVKKMxX7CommaiQ t, fcntl7THIoctl  e@ncoded: 2̌ wo F& Q!  o ut +up *eI2   C d V f0` in/I (ame ; nowQ e  am!128 S(IOCPARM_MASK0x7fŐ +I < 8 6P_VOIDNW 0x20000+fno,`OUTzg0x4,a 1\`u&p5%Wp(60|m@)ARx5~$Q&!?9KO@ N(8ol+AB_IOp(x,yc v|(x<<8)|y,R-,' av|(((long)sizeof(t)&)<<16)P} WP`O7O𠐃'fT',G7 5 g>#S |d2\&|-@6-@ $/$ Si/o2FIOASYNC353async 7@~S* I/O .trol%SaSHIW @s 0%% 5,M܀QDm^Ylp0Gp@x 1hPj@@LO2p *G*@O3O$`k!)t oob V)V. Koba &|Jnetdfb& <d · , K (s@uitablQC/)h<  zu h_nȇ /QӒ1`5  i 3 P ''и d vv@:;% %-O TF Z^@h_addr [0]Qbwa2comp2 Hd2 !WHhOISZ40^ 571 {T6z1RJ^W2J1ING`o"1TTYLIN--x!b}J)aINADDR_LO@OPBACK7u21eD= 1ffApNONE(p(3* Sock astylB _5{d 3 sin_family;d 7portp ,adddr*pqCzero[8];#DESCRIPTION_LENB56veWSASYS_STAT US"p2Lp f77 H,efp q f~' r[+14yarV| b} . @*LPiDATADE* Qus[g s]ets+opt at IP dW40 $/g- -pal"  }Z"s: ., d~ vSQE8CMAo>_european compumanufac' =bKIDM9;nk3CCIT| ~0, X.L251bSNp 1BM "iHC T&-DEC]s@aL1-Pirec okSXLA1&~SHY3s 1 ~NSC HychannelD.0App@leTalkrEhTBIR1w]etBios-,sG$1!J/ W4byrto YL| a\ ?$ ٬4 pgE% dr1s'oL ZC'' $< 9#  \Est|ru#* p+`dZ'I%H p; asK QnowM[BPSPEC^[PA+6o>o=0ʥ(EZ0pEs0O^_%04yN@hSO000D˖@L#< x1Ԥc@y$@gL@IY17G41APPLETAL.2УԓQ B& C3 Ǔ , on/off7+6+* isLev sQ(`/set)O{ 4ayd. j]iIf@Q ] ~Maximum 5 -Iab.$P n[.cA+Mj,ek a!SN%u: _ "UMSGIOHVLE16a>Ne 0ant g3rfc8p83, % .b yxxxx%{n#g24HpK b W _edp2j9 4!Hm80`k>"q0)_All Windows  sz 1ias' b "no rmal"0B@ASEERRɒ]8˖H ^n!S7C@ 0{@EINFTy :4)B(ADF9 ACLCE70138 F8AULPU0INHVALq22r MpFILE@BerkeleyWOULDBLO6p35s@PROGRESE60@LREADY37!NOTSSV08 !DESTADDRREQs!1SIZ̰Y0Z!`TOTYPv1ss@ OPω!C Kf~@NOSUPPORGK1Ty1OP7/f1PFSL2fAif1EINUSf1bAVAI8b2l DOWTR5f1 dUNCHfAEzTE92BABEDV2_:Ѓs2NOBUFBSp2k2SHU/F Z#&tMAN8YREL3TIMEDOU/621F/62LEd63NAMwLONGVI4HOS:6I4ѐ3EMPT֣3 CLIM3R6CQUON65 :73RCLONJ/"/1B,UFyBLISk;2i1T]HSHUzTkMZEDOUX8nI `FF[ǒ /L*#4/c:^XHOSR(^_%*#AEMPT`F CLIMIWSAPSR%  DQUOI@ !TALm0 AREMG0Socket k )extern "C" {7s, *a`ddr,mU M$@len);H MAA 1Cp) 8JSO laaffp@s0 p@struXct # nameP0 s cmd, "3rgpp|me`AA NQgettAA0M K!1cha  yopt A 3hton@l K 7Ps (u_shor)2 I !/(c t]pc!D_A i en.1 Md!ypntohy F0'enH ^ssq0]Àd Hr c"aM MJ#>i##0h)#frDomkA h s (int nfdSASread pwritee 93 excep&tC b timeou!o@{33IC$toto +I`3}val$7B;I}4 ]/!af2 ) M $X&gM hϚDatabasee e6# g_ &^L .@u/host/$(!FU `] 1 "l pfMT@a" 0~Microsoft V,6(WORD , LPE+ NvYCleanupP(voiJ4}&[#iError~;KIyXz0GetLastc `)'p@2`'I"HFAR +lBlingC(all8pHWND  1 iC?.a[T8SG@(p4pn|H=54T4'/D V7n! ^ ?"4BBlA4$"TaU(!FADHANDf rzJ C(WQ p &&j#3a D%} ME nded o / ,ef A;P*P L:@_in >P_INAP EpL6 0ZLINGE` *PL`$`ڃŐ*PIN_ `aPAFD_rr`A*P!(P:`(8EN?(,*P6HLp;;/MwN'1SV/1&P7@TOˀ*P"(pr0jjTVALOBj,*PZLp/* * Windows composition | s.'*0u v7 2Qu by BP R p(lParamS)1iM1LECTE T0epE@ /9 `C#1sb Qr2)k$ $ ='' N(  +b { )@ n2Ph `M0B&`ъf&`^ j3`6$78!@`#M`$6ZPt,sI H @0 0t0 3 G2%11c%r3- 9&^$vLvJ)%@$ql^8 >r1i!!U1  +ALLs#'uatd. Valid of liancediscusVsG=.r!1 + 9UDP ' \sNiAemT0 raw  (atypeJ(_RAW), 0 neprecatedg Certat y beoru 5pa yat  yform  the as QESpecial Rare -Qassist! H0W1wdW$0- 9&$ 1|,W$:1 CO(C*RDq{lop+E1 ag0 b*yeach UD0*y'wE-PA}0OTB R/* a3}a , JDocu bI.@LIB D9Imrt H NETDDB 0A /I`SYS/<5`C38H`*y~`'9T# ,qRun Time C2nDVH~ ( +g: T rA 'q)>1΁is: OQ\3 x6QqoD LLYn 6* ' 3(\1eH9&$)+@$CVcL f3 uҢ]% @l{@eFb3Fb3?5 by, Q ~ MUST be on a hi an P ed from making 'nestWindows k. } kcall IZ<Q^ Any4%  n valready of ,\are %s this ion: @lBlocCz() $r at  5 preliminary dr afts v } ) h # *bi@ ,hthA\it Kpermissib l1e S a 1in ,^ vno true.Regardc  (solut:uq vto simulat by  aswaiQ  L anticipaX jk7vprovidI ow  define1 y ] K aul@t  Thvu det8aild &# G41f hr3- @9&W$ ĀLlm0:2)$8B"8  @3W: B@ДҢ] 00nba:sr" ?(), etc.) ly d (' IBerkeley  ~s)   up T 9N\0s  employ @ GOR/ A som# ; hal G."Y G +F+Qp  , "EXG.1g0Y9&3$) \$4"a#3+ $qAD ; di]emBa _>aLfuncwmaBJD ]  Unli u$a S eDLLA klt` Len3 `ld 2u$ : 5 W supp$or0 # uLOT li &v:\3@ N7#!Aa3,  MSOC@KET fdA*set){ Mi = $->count;! (i--)2+->fd_array[i] ==H= 11@ 0;}&Y#G131pht9&Y$)$tq%2pordervoiy ps s؇b%&$s 2( J $ |, _0UsTginn, "WSA"E s ) -eQ 1Q!d uotX pforms#L2- 1 i-  - s9&f `$)-  P$G,284 f  @+2A2E ef Qu]  Nh0 m N!or& G $ Z:9eir <&@  + cn s 999!; w0 v1appl(which work T + ro' @;Ba% [*Vw:Ј ?  G \ECC@ @;  26: ^1P6: MS"-Z3.x/`Summ odu ;R LIBRARY]`hP;  's m80 /DESCRI PTION 'BSD  ßh'EXETYPE`WINDOWBS`;  B!STUB`U0.H"' zt~ iH ;%1; run ;CODE  FIXEDy m  ups $ PRELOADua:0MDATAl SINGLY: a[@R* Ia 71 ZZqW0A D Vr3>qHEAPSIZAa1024 tACK1638jA u ,$ ] 韋!)& D${ he + wv bove."PORTdS a2@1%p'`2'\s-( O3upBt0hS2 j @5pg na* 6N7 qhtonl a8d  3? L#RksG|a9q /ou!0#3!ā o enbntoh*;ǁ+gρ c[sŕ i2Ё R&`s9 SoIC T0so +el 73 ]S+msh5e5V铕55ڃhost0T7pH0yncGetHPByAddrr݄ cC3C6ByN7lAsReques^"x Set B]kjHook3԰jstErroRdymdPCw;c^_25_Cleaxnup_5aLwFHHqEP=ۖ00RESIDENTNAME$ C I8 @ o };ef }G61pj u9&O$:u)x$ &uCO% bF/E,Tz(T)a ensu|HyO< @ vpcurr*obPeta tRA u Ss!q g P[ vsupQN a comprehvive scHrip8 ddin u  E9]Sprq1993 If wis redceK V Hmo 9酲,emaiZwsat@microsoft.3x1 VkB9&'$4[$0Ref nceN'I@& n:; } v@intend 4c r @TCP/IPVdIilMa Bb ;N,  L2|!x y  Y brevity, }Q H& bgnd kn[I@owledge se topics.   8, Mreferences be helpful:[;BW |P!~@`Braden, R.[1989], RFC 1122, Qs--Communication Layers!Engineering Task  ce.0er, D. @work" ;Volum@e I: P6cipleslArchit@ecture#@@ A Desigy<H33vClient-Server HelveticaF td&_Courier0ENOBUTimes New RomanbyߑCourier New:q!foMS LineDraw0!ArialOg!*]HOW " GVd?N L|p Y  < J ؈0 pW<()9ѡ 4N?dr ~rzLvO:/`?)^O % " 3 k  j A * F D  X "/&;)i24??accept()AcknowledgementsBackground InformationBerkeley Socketsbind()closesocket() connect()$Database Functions(Database Routines0Error Codes4gethostbyaddr()8gethostbyname()<gethostname()@getpeername()Dgetprotobyname()Hgetprotobynumber()Lgetservbyname()PgetservbyportTgetsockname()Xgetsockopt()\Header Files`htonl()lhtons()pinet_addr()tinet_ntoa()xInstallation Check|Introductionioctlsocket()listen()Notes for Suppliers ntohl()ntohs()recv()recvfrom()ReferencesRevision Historyselect()send()sendto()setsockopt()shutdown()Socket FunctionsSocket Library Referencesocket()SocketsStatus of the SpecLWindows Extensions PWSAAsyncGetHostByAddr()tWSAAsyncGetHostByName()xWSAAsyncGetProtoByName()|WSAAsyncGetProtoByNumber()WSAAsyncGetServByName()WSAAsyncGetServByPort()WSAAsyncSelect()WSACancelAsyncRequest()WSACancelBlockingCall()WSACleanup()WSAGetLastError()WSAIsBlcoking()WSASetBlockingHook()WSASetLastError()WSAStartup()WSAUnhookBlockingHook()66/&;)Lzows Sockets CpVWindows Sockets IndexPGAcknowledgementsIntroductionMWhat is Windows SocketdBerkeley SocketsMicrosoft Windows and Windows-specific extension`The Status of this Specification(Revision HistoryProgramming with SocketsWindows Sockets Stack Installation CheckingSocketsdBasic conceptsr Client-server modelOut-of-band data~BroadcastingrByte OrderingzSocket OptionsLDatabase FilesDeviation from Berkeley Socketssocket data type and error valuesvselect() and FD_*Error codes - errno, h_errno & WSAGetLastError()PointersORenamed functions:Blocking routines & EINPROGRESSMaximum number of sockets supportedInclude filesReturn values on API failureRaw SocketsWindows Sockets in Multithreaded Versions of WindowsvSOCKET LIBRARY OVERVIEW4Socket Functions/Blocking/Non blocking & Data VolatilityNDatabase FunctionsMicrosoft Windows-specific Extension FunctionsAsynchronous select() Mechanism?Asynchronous Support RoutinesHooking Blocking Methods)Error HandlingAccessing from an Intermediate DLLInternal use of Messages^Private API InterfacesSocket Library ReferencerSocket Routinesaccept()bind()?closesocket()connect()Ygetpeername()getsockname()getsockopt()htonl()htons()؈inet_addr()inet_ntoa()ioctlsocket()0listen()ntohl()Wntohs()<recv()recvfrom()select())send()9sendto()ѡsetsockopt() shutdown()socket() Database Routinesgethostbyaddr()p gethostbyname() gethostname() getprotobyname() getprotobynumber()< getservbyname()J getservbyport()O Microsoft Windows-specific Extensions% WSAAsyncGetHostByAddr() WSAAsyncGetHostByName() " WSAAsyncGetProtoByName()3 WSAAsyncGetProtoByNumber() WSAAsyncGetServByName()k WSAAsyncGetServByPort() WSAAsyncSelect()j WSACancelAsyncRequest()A WSACancelBlockingCall()* WSACleanup()F WSAGetLastError()D WSAIsBlocking() WSASetBlockingHook() WSASetLastError()X WSAStartup()"WSAUnhookBlockingHook()|Error CodesHeader FilesBerkeley Header FilesNWindows Sockets Header File - winsock.h Notes for Windows Sockets SuppliersNotes for Windows Sockets Suppliers - IntroductionNotes for Windows Sockets Suppliers - ComponentsMultithreadedness and blocking routines.Notes for Windows Sockets Suppliers - Database FilesNotes for Windows Sockets Suppliers - FD_ISSETNotes for Windows Sockets Suppliers - Error CodespNotes for Windows Sockets Suppliers - DLL OrdinalsNotes for Windows Sockets Suppliers - Validation SuiteFor Further ReferenceVOrigins of Windows SocketsLegal Status of Windows SocketsThe Story Behind the Icont Functions/Blocking/Non blocking & Data VolatilityNDatabase FunctionsMicrosoft Windows-specific Extension FunctionsAsynchronous select() Mechanism?Asynchronous Support RoutinesHooking Blocking Methods)Error HandlingAccessing from an Intermediate DLLInternal use of Messages^Private API InterfacesSocket Library ReferencerSocket Routinesaccept()bind()?closesocket()connect()Ygetpeername()getsockname()getsockopt()htonl()htons()؈inet_addr()inet_ntoa()ioctlsocket()0listen()ntohl()Wntohs()<recv()recvfrom()select())send()9sendto()ѡsetsockopt() shutdown()socket() Database Routinesgethostbyaddr()p gethostbyname() gethostname() getprotobyname() getprotobynumber()< getservbyname()J getservbyport()O Microsoft Windows-specific Extensions% WSAAsyncGetHostByAddr() WSAAsyncGetHostByName() " WSAAsyncGetProtoByName()3 WSAAsyncGetProtoByNumber() WSAAsyncGetServByName()k WSAAsyncGetServByPort() WSAAsyncSelect()j WSACancelAsyncRequest()A nSock_AsyncSelect 1 WinSock_AsyncSelect winsockx.rtf 47 8C30A8386 WinSock_Bind 0 WinSock_Bind winsockx.rtf 48 >67B5E57D WinSock_Connect 1 WinSock_Connect winsockx.rtf 48 < E963038 WinSock_Listen 1 WinSock_Listen winsockx.rtf 48 <4D11B850 WinSock_Socket 1 WinSock_Socket winsockx.rtf 48 F46C0E030 Winsock_getsockname 1 Winsock_getsockname winsockx.rtf 48 H1BB93219 WinSock_GetLastError 1 WinSock_GetLastError winsockx.rtf 48 >1D6A655C WinSock_Startup 1 WinSock_Startup winsockx.rtf 48 DEA1DBD1A WinSock_SetSockOpt 1 WinSock_SetSockOpt winsockx.rtf 48 T2025DA02 WinSock_CancelBlockingCall 1 WinSock_CancelBlockingCall winsockx.rtf 48 >67B5E57D WinSock_Connect 1 WinSock_Connect winsockx.rtf 48 < E963038 WinSock_Listen 1 WinSock_Listen winsockx.rtf 48 F46C0E030 WinSock_GetSockName 1 WinSock_GetSockName winsockx.rtf 48 DEA1DBD1A WinSock_SetSockOpt 1 WinSock_SetSockOpt winsockx.rtf 48 <4D11B850 WinSock_Socket 1 WinSock_Socket winsockx.rtf 48 T2025DA02 WinSock_CancelBlockingCall 1 WinSock_CancelBlockingCall winsockx.rtf 48 FA20EF6EE WinSock_CloseSocket 0 WinSock_CloseSocket winsockx.rtf 49 RB0E54B48 WinsockProg_SocketOptions 1 WinsockProg_SocketOptions winsockx.rtf 49 D60E6C196 Winsock_getsockopt 1 Winsock_getsockopt winsockx.rtf 49 DEA1DBD1A Winsock_setsockopt 1 Winsock_setsockopt winsockx.rtf 49 8C31DCE0B WinSock_Recv 1 WinSock_Recv winsockx.rtf 49 RB0E54B48 WinsockProg_SocketOptions 1 WinsockProg_SocketOptions winsockx.rtf 49 D60E6C196 Winsock_getsockopt 1 Winsock_getsockopt winsockx.rtf 49 DEA1DBD1A Winsock_setsockopt 1 Winsock_setsockopt winsockx.rtf 49 H1BB93219 WinSock_GetLastError 1 WinSock_GetLastError winsockx.rtf 49 >1D6A655C WinSock_Startup 1 WinSock_Startup winsockx.rtf 49 T2025DA02 Winsock_CancelBlockingCall 1 Winsock_CancelBlockingCall winsockx.rtf 49 <ACE67B61 WinSock_Accept 1 WinSock_Accept winsockx.rtf 49 <4D11B850 WinSock_Socket 1 WinSock_Socket winsockx.rtf 49 FAD4D6D5B WinSock_IOCTLSocket 1 WinSock_IOCTLSocket winsockx.rtf 49 DEA1DBD1A /&;)L4ooprA dM;[s' )k Eͮ ?&s\¢P! :Ԫ>a{[mMa;OHKz]μ  <e)x y Q 77đzaY xC'xCW™ ^Fi3 =ϳ)T旅@-p ѡKr3|sK J'] ?dl{@D Dtvli ) "m 18002a .h R% սa 2F \ejX -?% A /ۛ  H`"#pM0&W'r &G(G}) XV*VFb3 =3LGb6 " Ts6466$78>Q~?2FA0FSI|I(K5K9`K* PM,NvOdN`RRj QR pXHY\(]Ң]NZ_؈))_` ;drъf}g2Ph9i/.i^ j _j:mJm< mJ niRDrO (t~ WSAGET* Windows Sockets definitions of regular* to a WSAAsyncSelect().* to a WSAGetXByY().* to extract the error code from the lParam in the response*)(set))->fd_array[*)(set))->fd_count, and, char FAR *, const char FAR *, const struct sockaddr FAR *, fd_set FAR *, int, int FAR *, struct sockaddr FAR *, unsigned int, which. . It can also be used to match up asynchronous operations and completion messages, by examining the. It is. Otherwise. The. This/* /* Tell the user that we couldn't find a useable *//* winsock.dll. */0x0000x800000000xc0000000)1.01.0 1.11.1100100016-bit32-bitA 16-bit number inA 32-bit number inA NULL-terminated array of alternate names.A Windows SocketsA blocking Windows Sockets call is in progress.A blocking Windows Sockets operation is in progress.A buffer for the incoming data.A descriptor identifyingA descriptor identifying a boundA descriptor identifying a connected socket.A descriptor identifying a socketA destination addresA optional pointer toA pointer to a service name.A pointer to theA pointer to the data area to receive the servent data. Note that this m/G&GlP* \0 (:L^p?$6J\n"4FXj|BK%7I[m!3EWi{ /ASew+=Oa/'9K]o{#5GYk}1CUgy -?cu);M_q_%7I[m!3EWi{ Sew+=OasC(:L^p$6HZl~K2DVhz .@Rv*Pbt(:L^p$6HZl~ _DVhz .@Rd*$K .@Rdv/*N`r&{J\n"4FXj/ 0BTfx{,>Pbt_{:L^$6HZ~ 2DVhz_.@RdvC*<`rkz .@RdPbK1c`KC&8JQK5`K&8JK"4FXj|p/(:L^pTfQ{>P/t(/K{{$6HZl{/ 2DVhz:.Rdv~/Ir_&8J\_"4FXj|_ BTfxoL^C$6SZ#5.@RKv'KK=&8J\nK"4FXj|9K,/]o,aK{Zl 2D{h0 1CUgy -?Qcu/Se;Mq%{I/5'9K]o{{#5GYk}7I1Ugy Y-?cu);MY/%7I[m'!EWi{+K+=as9K/o$6HZ~c);M_qK/AxE/l~E.{Rdv*Kt(:Lp/$6HZl~G%$6/Zl~ /$6Aql~{F'9Ko E*PbtC:L_JCw=O[?'9K]G#5GYk}G 1Ugyc#5G#5Cfx,>K/t(:LpK$6HZl~{M$6G_fx$6Kl~𓑫,>Kt_b 1CUgy_ ?Qcu_)M_Kѫ#/KYkw/ 1CUgyG-?Qcu[);Mq7I[_{!3EW{G_ /ASew+Oas/A/AewS$6HZ)55.@KwvKUgy\z .KK_t`/p_yS#5{FN`r0J\nKNQ*CN`//[ ./dv{KPb/(:{p["4\N`rS_&8C9n_"4F"4F"4ԿKfx_(:G?=*<`r[` C?$6K>ArP[K .@Ev@ 1VhzK:L^p 2DKhz3/"4F)|@%7{\n/u";RPb{_:L/p{6HZ_~ 2DVG .@dvC*6`rg8=\n_"4KiqcG)$6Hl~[`KK;q;2/,>P 0{fx/+ ,Pbt{/(YL^p/$] {lY/ /DVhz .@Rd{=bt9%C)gghz\K]oKK -#KyKKHZlXKoQ KK(Kf^pK?m*/ .|^p/'{& .|^pKoQ/PbtJK#Qs& .|^pKoQew_/{PbtK_s=;b -KQoA_ BTfx/!CC:L^/K6]hz {.@RdK/*Pbt{ K(:L^{6pdv_*P(:Lp!{HZl~C_ mM{{ /Ae_ 0BT'sr)G{\nAm)uMK=K%7Im)K3C 0 fxm K%,>Pbt/Y{U"4X| {BTfxY{u,>Pb{=[K9K^p_6 _ 2DV/ .@R_v!CP{/ .@Rdl)/N`r` /)S{+=OKsum_$6l~m K2DVhz/ Yu{/*{`KI&{J\n {"4FXj/Y[Qfx_>bO$6HZ{K 2DVz!=CMGRdvC_*/c$6HZ~[@!GcK]oQ+mG3? -?QGOjmK 0fxm K/K>Pbt/Yuc/${ZYKC {DVhz {.@Rd/[K`r8\O0BT{K,>Pt!=+GGL^pC_${/c$6HZ~[@)GcK]oKQ+)G'9KKou{ 0fx /K>Pbt/(:c${Zl~C {DVhz.@Rd/*`r_8J\n[_"4FX 0BTxC_PbtC(:LK(:L^leKZl~`e);M_c'%7IKm[_!3Wi{ {+4FXj|6 T/w"4KXjQ{kJ\nK/"4FXjkGcfx_{>/t_(:L^/$6Hl~-DVhzC.Rw .@R𔐖_KZl~`_);_c%7IKm 0fx/K>Pbtt/Ke1/{wF"4{Xj/_ {BTfx{[,>Pb/I(C_Kp_6H_ 2DV{[ .@Rv+{[N`rC_&y\{&8J\CKKXj|);C_c%7IKm 0fx/K>Pbt/(:^/${Zl~uuC {DVhz.@Rd/A]`r__8J\nww_"4FX 0BT_xC_PbtC(:Lq/(:L^ZKZl~`);M_A` .@CvK1*<`r8J\n/K"4X|{ 0{Tfxu)M{>Pbt(:L^p;W_{l~_2DVh#O.@Rd{*Pt(:L^C$Ng .@R|.K$N .@R|$Nx "4FX66K$NK .@R|K$N .@RȑK$K/Zl~`/*Pt(L^pC$6HZl$6HZ_~[P(/L^pK$6HZlK -?Q{v*{btK -?:L^pK/;M_q,>{(#\Tfx 1_,>PbtK&8J\ni{ j|_/+=Oa'9K]{(:L^CYk}{(:L^p(:L{l$6HK'9_]oDKPbtK5GYk}1KO(:-$6DPbty///ASe/_:L^p{{{~ K>Pbt[`%7IC0BTfa_K`r_Yk} 1/-?QK 0);Mq{PbtCI[m{A?*<{YK$6HK)_M_q`@91K]oK{ 2D P$6KZl~[`K]:L^paK0BTf/uK)WA{{/>PbtKK(:L^/{{/'9KZl~{_k}__.@R_*FXj|_1CUgy{%);M_qK|XSK]o_4FXjKC*Pbt(:L^\,>PbtC(:L^p$6HZl~ 2Dhz .@Rdv{*Pbt(:L^pK%7I[m!3EW{ /ASew+=Oas_'9K]o#5{Yk} 1CUgy -?Qcu);M_q%/I[m!3EWi /ASew+=Oas'9K]o#5Gk} 1CUgy{ .@Rdv{%7I[m!3_j`r&8J\n"4FXj|` .@RdvPbt(:L/p$6HZl~ 2DVhz .@Rdv*N`r'9K]o#5GYk} 1CUgy -?Qcu);M_2`+=Oas'9K]oK#5GYk} 1C{gy -?Qcu);M_q%7I[m!