microsoft developer network - [infoviewer topic]

50
The Windows Sockets Electronic Discussion List Page 1 of 50 file:C:\TEMP\01becc72.htm 9/3/99 ’HYHORSLQJ7UDQVSRUW,QGHSHQGHQW$SSOLFDWLRQV 8VLQJWKH:LQGRZV6RFNHWV,QWHUIDFH ,QWURGXFWLRQ

Upload: others

Post on 03-Feb-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 1 of 50

file:C:\TEMP\01becc72.htm 9/3/99

'HYHORSLQJ�7UDQVSRUW�,QGHSHQGHQW�$SSOLFDWLRQV�8VLQJ�WKH�:LQGRZV�6RFNHWV�,QWHUIDFH&OLFN�WR�RSHQ�RU�FRS\�WKH�SURMHFW�ILOHV

3UHVHQWHG�E\��'DYLG�7UHDGZHOO

'DYLG�7UHDGZHOO�KDV�EHHQ�DFWLYH�LQ�0LFURVRIW�:LQGRZV�6RFNHWV�VLQFH�LWV�LQFHSWLRQ��DFWLQJ�DV�D�FRDXWKRU�RI�WKH�VSHFLILFDWLRQ�DQG�GHYHORSLQJ�WKH�:LQGRZV�17�RSHUDWLQJ�V\VWHP�:LQGRZV�6RFNHWV�LQWHUIDFH�

3RUWLRQV�RI�WKLV�VHVVLRQ�DUH�UHSULQWHG��ZLWK�SHUPLVVLRQ��IURP��3OXJ�LQWR�6HULRXV�1HWZRUN�3URJUDPPLQJ�ZLWK�WKH�:LQGRZV�6RFNHWV�$3,��E\�-��$OODUG��.HLWK�0RRUH��DQG�'DYLG�7UHDGZHOO��0LFURVRIW�6\VWHPV�-RXUQDO��-XO\��������������0LOOHU�)UHHPDQ�,QF�

,QWURGXFWLRQ,Q�WRGD\V�KHWHURJHQHRXV�QHWZRUNV��RQH�WKLQJ�LV�FOHDU��FORVHG��SURSULHWDU\�VWDQGDUGV�DUH�XQZHOFRPH��$V�WKH�EXVLQHVV�RI�QHWZRUNLQJ�FRPSXWHUV�KDV�HYROYHG�RYHU�WKH�ODVW�WZR�GHFDGHV��KDUGZDUH�DQG�VRIWZDUH�SURYLGHUV�KDYH�OHDUQHG�WKDW�FRRSHUDWLRQ�FDQ�\LHOG�YHU\�UHZDUGLQJ�UHVXOWV��7KH�0LFURVRIW��:LQGRZV��6RFNHWV�HIIRUW�UHSUHVHQWV�DQ�H[WUHPHO\�XVDEOH�RSHQ�QHWZRUNLQJ�VWDQGDUG�GHYHORSHG�E\�RYHU����FRRSHUDWLQJ�YHQGRUV�LQ�WKH�QHWZRUNLQJ�FRPPXQLW\��

7KH�:LQGRZV�6RFNHWV�$3,��$SSOLFDWLRQ�3URJUDPPLQJ�,QWHUIDFH��SURYLGHV�DSSOLFDWLRQV�ZLWK�DQ�DEVWUDFWLRQ�RI�WKH�QHWZRUNLQJ�VRIWZDUH�EHORZ�LW��7KH�SUHVHQW�:LQGRZV�6RFNHWV�VSHFLILFDWLRQ��YHUVLRQ������GHILQHV�WKLV�DEVWUDFWLRQ�IRU�WKH�7&3�,3��RU�,QWHUQHW�SURWRFRO�IDPLO\��)RU�PDQ\��WKH�7&3�,3�SURWRFROV�UHSUHVHQW�WKH�JUHDWHVW�FRPPRQ�GHQRPLQDWRU�EHWZHHQ�WKH�PDQ\�GLVWLQFW�V\VWHPV�WKDW�PDNH�XS�WRGD\V�HQWHUSULVH�QHWZRUNV��,Q�IDFW��WKH�7&3�,3�SURWRFROV�ZHUH�GHYHORSHG�LQ�D�PDQQHU�VLPLODU�WR�WKH�:LQGRZV�6RFNHWV�VSHFLILFDWLRQ��RSHQ�FRRSHUDWLRQ�EHWZHHQ�PDQ\�LQWHUHVWHG�SDUWLHV�ZLWK�GLIIHUHQW�UHTXLUHPHQWV��:LQGRZV�6RFNHWV�GRHVQW�VWRS�DW�7&3�,3��KRZHYHU��7KH�OHYHO�RI�DEVWUDFWLRQ�LV�FRPSOHWH�HQRXJK�WR�VXSSRUW�RWKHU�SURWRFRO�IDPLOLHV�DV�ZHOO��IRU�H[DPSOH��WKH�;HUR[��1HWZRUN�6\VWHP��;16��SURWRFROV��'LJLWDOV�'(&QHW�SURWRFRO��RU�1RYHOO�V�,3;�63;�IDPLO\��)RU�PDQ\��WKH�DWWUDFWLRQ�WR�:LQGRZV�6RFNHWV�LV�WKH�DELOLW\�WR�GHYHORS�DQG�RU�UXQ�D�:LQGRZV�6RFNHWV�FRPSDWLEOH�DSSOLFDWLRQ�RYHU�DQ\�YHQGRUV�:LQGRZV�6RFNHWV�FRPSOLDQW�7&3�,3�LPSOHPHQWDWLRQ��ZKLOH�SURYLGLQJ�WKH�DELOLW\�WR�PRYH�WKH�DSSOLFDWLRQ�HDVLO\�WR�RWKHU�QHWZRUNLQJ�SURWRFROV�

:LQGRZV�6RFNHWV�LV�LPSOHPHQWHG�DV�D�'//��G\QDPLF�OLQN�OLEUDU\��SURYLGHG�E\�WKH�YHQGRU�RI�WKH�JLYHQ�QHWZRUN�SURWRFRO�VRIWZDUH��$�:LQGRZV�6RFNHWV�GHYHORSHU�OHYHUDJHV�WKH�$3,V�IURP�ERWK�:LQGRZV�6RFNHWV�DV�ZHOO�DV�WKH�:LQGRZV�RSHUDWLQJ�V\VWHP�LWVHOI�WR�FUHDWH�D�QHWZRUN�DZDUH�:LQGRZV�DSSOLFDWLRQ��7KH�IROORZLQJ�GLDJUDP�LOOXVWUDWHV�WKH�EDVLF�EXLOGLQJ�EORFNV�XVHG�WR�FUHDWH�D�:LQGRZV�6RFNHWV�DSSOLFDWLRQ��7KH�DUHDV�VKDGHG�LQ�JUD\�DUH�SURYLGHG�E\�WKH�QHWZRUN�SURWRFRO�YHQGRU�

Page 2: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 2 of 50

file:C:\TEMP\01becc72.htm 9/3/99

7KH�EDVLF�EXLOGLQJ�EORFNV�RI�D�:LQGRZV�6RFNHWV�DSSOLFDWLRQ

7KH�JRDO�RI�WKLV�DUWLFOH�LV�WR�RIIHU�GHYHORSHUV�D�WDVWH�RI�WKLV�SRZHUIXO�QHZ�$3,��:H�DVVXPH�WKDW�WKH�UHDGHU�LV�IDPLOLDU�ZLWK�ERWK�QHWZRUNLQJ�EDVLFV�DV�ZHOO�DV�:LQGRZV�SURJUDPPLQJ��7R�NHHS�WKLQJV�VLPSOH��ZH�ZLOO�IRFXV�RXU�GLVFXVVLRQ�RQ�XVLQJ�:LQGRZV�6RFNHWV�WR�GHYHORS�QHWZRUN�DSSOLFDWLRQV�RYHU�WKH�7&3�,3�SURWRFRO�IDPLO\��EXW�ZLOO�LQFOXGH�VHYHUDO�WLSV�RQ�KRZ�RWKHU�WUDQVSRUW�SURWRFROV�DUH�VXSSRUWHG�ZLWK�:LQGRZV�6RFNHWV�

7RGD\��RYHU����DSSOLFDWLRQ�YHQGRUV�KDYH�DQQRXQFHG�WKH�GHYHORSPHQW�RI�FRPPHUFLDO�DSSOLFDWLRQV�WR�:LQGRZV�6RFNHWV�VXFK�DV�;�:LQGRZV�VHUYHUV��WHUPLQDO�HPXODWRUV��DQG�HPDLO�V\VWHPV��6HYHUDO�FRPPHUFLDO�DQG�SXEOLF�GRPDLQ�YHUVLRQV�RI�:LQGRZV�6RFNHWV�FRPSOLDQW�7&3�,3�VWDFNV�DUH�DYDLODEOH��DQG�ERWK�0LFURVRIW�:LQGRZV�17��DQG�&KLFDJR�LQFOXGH�:LQGRZV�6RFNHWV�LPSOHPHQWDWLRQV�ZKLFK�DUH�FDSDEOH�RI�VXSSRUWLQJ�WUDQVSRUW�SURWRFROV�LQ�DGGLWLRQV�WR�7&3�,3��VXFK�DV�,3;�63;��0DQ\�FRUSRUDWH�GHYHORSHUV�DUH�VWDQGDUGL]LQJ�RQ�:LQGRZV�6RFNHWV�IRU�KHWHURJHQHRXV�FOLHQW�VHUYHU�DSSOLFDWLRQ�GHYHORSPHQW�XQGHU�0LFURVRIW�:LQGRZV��

:KHWKHU�\RXUH�GHYHORSLQJ�FOLHQW�VHUYHU��SHHU�WR�SHHU��RU�GLVWULEXWHG�QHWZRUN�DSSOLFDWLRQV��:LQGRZV�6RFNHWV�UHSUHVHQWV�D�VWDQGDUG�QHWZRUNLQJ�$3,�IRU�0LFURVRIW�:LQGRZV�ZKLFK�ZLOO�DOORZ�\RX�WR�GHYHORS�IOH[LEOH�QHWZRUNLQJ�DSSOLFDWLRQV�IRU�7&3�,3�DQG�RWKHU�QHWZRUNLQJ�SURWRFROV��

Page 3: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 3 of 50

file:C:\TEMP\01becc72.htm 9/3/99

7KH�%LUWK�RI�:LQGRZV�6RFNHWV���

7KH�:LQGRZV�6RFNHWV�VSHFLILFDWLRQ�LV�WKH�UHVXOW�RI�D�FRRSHUDWLYH�HIIRUW�DPRQJ�RYHU����YHQGRUV�LQ�WKH�7&3�,3�FRPPXQLW\��7KH�FKDUWHU�RI�WKH�JURXS�ZDV�VLPSOH��WR�GHVLJQ�D�ELQDU\�FRPSDWLEOH�$3,�IRU�WKH�7&3�,3�SURWRFRO�IDPLO\�XQGHU�0LFURVRIW�:LQGRZV��DOORZLQJ�IRU�IXWXUH�VXSSRUW�RI�DGGLWLRQDO�WUDQVSRUW�SURWRFROV��7KH�HIIRUW��OHG�E\�0DUWLQ�+DOO�RI�-6%�&RUSRUDWLRQ��ZDV�NLFNHG�RII�DW�D�%LUGV�RI�D�)HDWKHU�VHVVLRQ�DW�WKH�)DOO����,QWHURS�QHWZRUNLQJ�FRQIHUHQFH�

,QIXULDWHG�E\�D�ODFN�RI�VWDQGDUGL]DWLRQ��7&3�,3�DSSOLFDWLRQ�YHQGRUV�OLNH�-6%�ZHUH�IRUFHG�WR�GHYHORS�WKHLU�DSSOLFDWLRQV�WR�EH�DZDUH�RI�VHYHUDO�GLYHUJHQW�$3,V��7KLV�DOORZHG�WKHLU�DSSOLFDWLRQV�WR�UXQ�RYHU�PXOWLSOH�YHQGRUV�7&3�,3�LPSOHPHQWDWLRQ��PDNLQJ�WKHLU�SURGXFWV�DYDLODEOH�WR�WKH�ZLGHVW�SRVVLEOH�DXGLHQFH��:LWK�RYHU����GLIIHUHQW�7&3�,3�LPSOHPHQWDWLRQV�RQ�WKH�PDUNHW��PDQ\�YHQGRUV�FUHDWHG�DQ�DEVWUDFWLRQ�OD\HU�WR�WKH�QHWZRUN�LQWHUIDFH��FUHDWLQJ�D�FRPPRQ�GHQRPLQDWRU�ZKLFK�FRXOG�EH�VXSSRUWHG�E\�DOO�RI�WKHLU�WDUJHW�LPSOHPHQWDWLRQV��7KHLU�DSSOLFDWLRQ�ZDV�WKHQ�GHYHORSHG�WR�WKLV�SURSULHWDU\�DEVWUDFWLRQ�OD\HU��3URYLGHUV��RU�FRGH�ZKLFK�JOXHG�WKH�DSSOLFDWLRQ�WR�D�VSHFLILF�YHQGRUV�7&3�,3�LPSOHPHQWDWLRQ��ZHUH�GHYHORSHG�IRU�HDFK�RI�WKH�7&3�,3�LPSOHPHQWDWLRQV�ZKLFK�WKH�DSSOLFDWLRQ�GHVLUHG�WR�VXSSRUW�

7KLV�DSSURDFK�ZDV�ERWK�FRVWO\�DQG�IUXVWUDWLQJ��$SSOLFDWLRQ�YHQGRUV�ZHUH�FRQWLQXRXVO\�XSGDWLQJ�WKHLU�SURYLGHU�PRGXOHV�DV�7&3�,3�LPSOHPHQWRUV�PRGLILHG�RU�XSGDWHG�WKHLU�OLEUDULHV��0RUHRYHU��QHZ�LPSOHPHQWDWLRQV�ZHUH�VSULQJLQJ�XS�TXLFNO\��DQG�LW�WRRN�WLPH�EHIRUH�WKH�DSSURSULDWH�SURYLGHU�FRXOG�EH�PDGH�DYDLODEOH�WR�FXVWRPHUV��$SSOLFDWLRQ�YHQGRUV�IRXQG�LW�GLIILFXOW�WR�PDLQWDLQ��WHVW��DQG�VXSSRUW�WKH�PXOWLSOH�SURYLGHUV��7KLV�FDXVHG�7&3�,3�LPSOHPHQWRUV�GLIILFXOW\�DV�ZHOO��HVSHFLDOO\�LI�D�FULWLFDO�WKLUG�SDUW\�DSSOLFDWLRQ�GLGQW�UXQ�RYHU�WKHLU�LPSOHPHQWDWLRQ��&XVWRPHUV�ZHUH�IRUFHG�WR�FKRRVH�D�7&3�,3�LPSOHPHQWDWLRQ�EDVHG�RQ�WKHLU�DSSOLFDWLRQ�QHHGV�UDWKHU�WKDQ�WKH�PHULW�RI�YHQGRUV�WUDQVSRUWV�

,W�ZRXOG�DSSHDU�WKDW�JHWWLQJ�WKH�GHYHORSHUV�RI�7&3�,3�WUDQVSRUWV�DQG�DSSOLFDWLRQV�WR�ZRUN�WKLV�RXW�ZRXOG�PDNH�D�ORW�RI�VHQVH��0DUWLQ�+DOO�DFWHG�DV�WKH�FDWDO\VW�WR�JHW�WKLQJV�JRLQJ�TXLFNO\��,Q�IDFW��YHQGRUV�ZHUH�VR�PRWLYDWHG�WR�VWUDLJKWHQ�RXW�WKH�7&3�,3�QHWZRUNLQJ�$3,�FRQIXVLRQ�WKDW�LQ�MXVW�QLQH�PRQWKV�WKH�:LQGRZV�6RFNHWV�FRPPLWWHH�SXEOLVKHG�WKH�ILUVW�YHUVLRQ�RI�WKH�VSHFLILFDWLRQ��7KH�ILUVW�DQQLYHUVDU\�RI�WKH�HIIRUW�ZDV�FKULVWHQHG�E\�VHYHUDO�WHFKQRORJ\�DQG�LQWHURSHUDELOLW\�GHPRQVWUDWLRQV�DW�)DOO�,QWHURS�����7KH�PHVVDJH�ZDV�FOHDU��:LQGRZV�6RFNHWV�ZDV�UHDO�

:LQGRZV�6RFNHWV�$UFKLWHFWXUHV

+RZ�DUH�WKH�:LQGRZV�17�DQG�&KLFDJR�RSHUDWLQJ�V\VWHPV�DEOH�WR�VXSSRUW�VHYHUDO�WUDQVSRUW�SURWRFROV�ZLWK�D�VLQJOH�$3,�VHW"�7KH�DQVZHU�OLHV�LQ�WKH�FDUHIXOO\�GHVLJQHG�QHWZRUN�DUFKLWHFWXUHV�RI�WKHVH�RSHUDWLQJ�V\VWHPV��%HFDXVH�DQ�XQGHUVWDQGLQJ�RI�WKH�XQGHUO\LQJ�QHWZRUN�DUFKLWHFWXUH�LV�DOZD\V�KHOSIXO�DQG�IUHTXHQWO\�PDQGDWRU\�LQ�GHVLJQLQJ�DQG�LPSOHPHQWLQJ�IDVW��UREXVW�QHWZRUNLQJ�DSSOLFDWLRQV��ZHOO�EULHIO\�GHVFULEH�KRZ�:LQGRZV�6RFNHWV�ILWV�LQWR�WKHVH�RSHUDWLQJ�V\VWHPV�

:LQGRZV�6RFNHWV�LQ�:LQGRZV�17

7KH�NH\�WR�WUDQVSRUW�LQGHSHQGHQW�:LQGRZV�6RFNHWV�VXSSRUW�LQ�:LQGRZV�17�LV�D�FRPPRQ�NHUQHO�PRGH�WUDQVSRUW�LQWHUIDFH�FDOOHG�7UDQVSRUW�'HYLFH�,QWHUIDFH��RU�7',�IRU�VKRUW��$OO�RI�WKH�QHWZRUNLQJ�FRPSRQHQWV�RI�:LQGRZV�17�JR�WKURXJK�7',�WR�DFFHVV�D�WUDQVSRUW�SURWRFROV�VHUYLFHV��

Page 4: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 4 of 50

file:C:\TEMP\01becc72.htm 9/3/99

7',�DEVWUDFWV�NH\�GLIIHUHQFHV�EHWZHHQ�SURWRFROV��VXFK�DV�WKH�IRUPDW�RI�WUDQVSRUW�DGGUHVVHV��DQG�SURYLGHV�FRPPRQ�HQWU\�SRLQWV�IRU�W\SLFDO�WUDQVSRUW�IHDWXUHV�OLNH�VHQGLQJ�GDWD�

1HWZRUNLQJ�DUFKLWHFWXUH�RI�:LQGRZV�17

$OO�WKH�NHUQHO�PRGH�QHWZRUNLQJ�FRPSRQHQWV�RI�:LQGRZV�17�XVH�WKH�7',�LQWHUIDFH�WR�VSHDN�WR�WKH�WUDQVSRUW�OD\HUV�EHORZ�WKHP��7KLV�XVH�RI�D�FRPPRQ�LQWHUIDFH�DOORZV�HDV\�DGGLWLRQ�RU�UHPRYDO�RI�WUDQVSRUW�SURWRFROV��VLQFH�HDFK�WUDQVSRUW�SURWRFRO�LV�FRPSOHWHO\�VHSDUDWHG�IURP�WKH�OD\HUV�ZKLFK�XVH�LW��LQ�IDFW��HDFK�WUDQVSRUW�LV�SDFNDJHG�DV�D�VHSDUDWH�GULYHU�ILOH�

+RZHYHU��7',�LV�QRW�WKH�RQO\�NHUQHO�PRGH�WUDQVSRUW�LQWHUIDFH�DYDLODEOH�LQ�:LQGRZV�17��7KHUH�LV�DOVR�WKH�6WUHDPV�LQWHUIDFH��ZKLFK�LV�EDVHG�RQ�WKH�$77��695��6WUHDPV�HQYLURQPHQW��6WUHDPV�LV�XVHIXO�IRU�SRUWLQJ�H[LVWLQJ�WUDQVSRUW�SURWRFROV�WR�:LQGRZV�17�TXLFNO\�DQG�HDVLO\��+RZHYHU��LW�GRHV�LPSRVH�D�SHUIRUPDQFH�RYHUKHDG�RQ�DOO�WUDQVDFWLRQV��VLQFH�WKHUH�LV�D�PDSSLQJ�OD\HU�EHWZHHQ�WKH�7',�FDOOV�PDGH�E\�XSSHU�OD\HUV�DQG�WKH�LQWHUQDO�LQWHUIDFHV�XVHG�E\�6WUHDPV��7KH�7&3�,3�DQG�,3;�63;�WUDQVSRUW�SURWRFROV�VXSSOLHG�ZLWK�WKH�RULJLQDO�UHOHDVH�RI�:LQGRZV�17�H[LVWHG�LQ�

Page 5: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 5 of 50

file:C:\TEMP\01becc72.htm 9/3/99

WKH�6WUHDPV�HQYLURQPHQW��EXW�'D\WRQD��WKH�QH[W�UHOHDVH�RI�:LQGRZV�17��ZLOO�LQFOXGH�QDWLYH�7',�LPSOHPHQWDWLRQV�RI�WKHVH�WUDQVSRUW�SURWRFROV�IRU�LPSURYHG�SHUIRUPDQFH�

7KH�XVH�RI�7',�DV�WKH�LQWHUIDFH�XQGHUQHDWK�:LQGRZV�6RFNHWV�VROYHV�PRVW�RI�WKH�LVVXHV�ZLWK�PXOWLSOH�WUDQVSRUW�VXSSRUW��EXW�VRPH�DGGLWLRQDO�LVVXHV�GR�UHPDLQ��)RU�H[DPSOH��EHFDXVH�HDFK�WUDQVSRUW�SURWRFRO�XVHV�D�GLIIHUHQW�DGGUHVV�IRUPDW��KRZ�FRXOG�:LQGRZV�6RFNHWV�NQRZ�ZKLFK�DGGUHVVHV�DUH�EURDGFDVW�DGGUHVVHV"�+RZ�FDQ�WKH�:LQGRZV�6RFNHWV�'//�NQRZ�ZKLFK�WUDQVSRUW�GHYLFH�QDPH�FRUUHVSRQGV�WR�D�JLYHQ�W\SH�RI�VRFNHW"�$QG�KRZ�FDQ�WUDQVSRUWV�VXSSO\�WKHLU�RZQ�XQLTXH�VRFNHW�RSWLRQV�OLNH�7&3�,3V�62B'2175287(�RSWLRQ"

7KH�DQVZHU�LV�WKH�XVH�RI�XVHU�PRGH��KHOSHU�'//V��ZKLFK�WKH�:LQGRZV�6RFNHWV�'//��:62&.���'//��XVHV�IRU�FDUHIXOO\�GHILQHG�IXQFWLRQDOLW\��(DFK�RI�WKH�7',�WUDQVSRUW�SURWRFROV�H[SRVHG�WKURXJK�:LQGRZV�6RFNHWV�VXSSOLHV�RQH�RI�WKHVH�KHOSHU�'//V�DV�ZHOO�DV�SODFLQJ�LQIRUPDWLRQ�LQ�:LQGRZV�17V�UHJLVWU\�DERXW�ZKHUH�WR�ILQG�WKH�KHOSHU�'//V�DQG�ZKDW�VRUWV�RI�VRFNHWV�HDFK�VXSSRUWV��7KH�:LQGRZV�6RFNHWV�'//�WKHQ�FDOOV�LQWR�WKH�KHOSHU�'//V�HQWU\�SRLQWV�WR�OHDUQ�DERXW�WKH�IRUPDW�RI�WUDQVSRUW�DGGUHVVHV��WR�SURFHVV�WUDQVSRUW�VSHFLILF�VRFNHW�RSWLRQV��DQG�PRUH��

Page 6: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 6 of 50

file:C:\TEMP\01becc72.htm 9/3/99

:LQGRZV�6RFNHWV�DUFKLWHFWXUH�RI�:LQGRZV�17

,Q�DGGLWLRQ�WR����ELW�:LQGRZV�6RFNHWV�DSSOLFDWLRQV�VXSSRUWHG�WKURXJK�:62&.���'//��:LQGRZV�17�DOVR�VXSSRUWV����ELW�:LQGRZV�6RFNHWV�DSSOLFDWLRQV�WKURXJK�WKH�ILOH�:,162&.�'//��7KLV�ILOH�LV�FRPSRVHG�RI�PLQLPDO�HQWU\�SRLQWV�ZKLFK�FDOO�LQWR�:LQGRZV�17V��:2:���:LQGRZV�RQ�:LQGRZV��VXEV\VWHP��ZKLFK�ZLGHQV�WKH�SDUDPHWHUV�WR����ELWV�DQG�FDOOV�LQWR�:62&.���'//�IRU�WKH�DFWXDO�QHWZRUNLQJ�VXSSRUW��7KXV��:,162&.�'//�DFWV�DV�D��WKXQNLQJ�OD\HU��EHWZHHQ����ELW�DSSOLFDWLRQV�DQG�WKH�UHVW�RI�WKH�RSHUDWLQJ�V\VWHP��ZKLFK�LV�DOO����ELW�

:LQGRZV�6RFNHWV�LQ�&KLFDJR

1RWH�7KH�LQIRUPDWLRQ�LQ�WKLV�VHFWLRQ�SHUWDLQV�WR�WKH�QH[W�PDMRU�UHOHDVH�RI�:LQGRZV��FRGH�QDPHG�&KLFDJR��$OO�RI�WKH�LQIRUPDWLRQ�LQ�WKLV�VHFWLRQ�LV�SUHOLPLQDU\�DQG�VXEMHFW�WR�FKDQJH�

&KLFDJR�DOVR�VXSSRUWV�PXOWLSOH�WUDQVSRUWV�XQGHU�:LQGRZV�6RFNHWV��XVLQJ�WKH�VDPH�QDPHV��:62&.�'//�DQG�:,162&.�'//��IRU�WKH�V\VWHP�'//V�VR�WKDW�DSSOLFDWLRQ�ELQDU\�FRPSDWLELOLW\�LV�SUHVHUYHG��+RZHYHU��LQWHUQDOO\�WKH�DUFKLWHFWXUH�RI�:LQGRZV�6RFNHWV�LQ�&KLFDJR�LV�VLJQLILFDQWO\�GLIIHUHQW�WKDQ�:LQGRZV�17V�DUFKLWHFWXUH�

Page 7: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 7 of 50

file:C:\TEMP\01becc72.htm 9/3/99

:LQGRZV�6RFNHWV�DUFKLWHFWXUH�RI�&KLFDJR

2QH�RI�WKH�NH\�GLIIHUHQFHV�EHWZHHQ�WKH�&KLFDJR�DQG�:LQGRZV�17�:LQGRZV�6RFNHWV�DUFKLWHFWXUHV�LV�WKDW�WKHUH�LV�QR�WKXQNLQJ�LQYROYHG�IRU����ELW�DSSOLFDWLRQV��7KH�:LQGRZV�6RFNHWV�'//�LV�FURVV�FRPSLOHG�LQWR�WZR�GLIIHUHQW�ILOHV��:62&.���'//�DQG�:,162&.�'//��(DFK�RI�WKHVH�VSHDNV�GLUHFWO\�WR�WKH�XQGHUO\LQJ�9['V��YLUWXDO�GHYLFH�GULYHUV��ZKLFK�SURYLGH�:LQGRZV�6RFNHWV�VXSSRUW��WKHUHE\�HOLPLQDWLQJ�DQ�H[WUD�OD\HU�IRU����ELW�DSSOLFDWLRQV�

Page 8: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 8 of 50

file:C:\TEMP\01becc72.htm 9/3/99

1H[W��&KLFDJR�KDV�PXOWLSOH�NHUQHO�PRGH�WUDQVSRUW�LQWHUIDFHV��LQFOXGLQJ�ERWK�7',�DQG�WKH�(&%��HYHQW�FRQWURO�EORFN��LQWHUIDFH��7KHUHIRUH��WKH�GULYHUV�ZKLFK�WUDQVODWH�EHWZHHQ�:LQGRZV�6RFNHWV�FDOOV�DQG�WKH�WUDQVSRUW�GULYHUV�DUH�GLIIHUHQW�IRU�HDFK�WUDQVSRUW��7KH�:,162&.�����9['�SRLQWV�WKH�XVHU�PRGH�'//V�DW�WKH�DSSURSULDWH�NHUQHO�GULYHU��WKHQ�WKH�'//V�DFFHVV�:67&3�����RU�:61:������ZKLFK�LQ�WXUQ�VSHDN�WR�WKHLU�WUDQVSRUWV�RYHU�HDFK�WUDQVSRUWV�LQWHUIDFH�

7KH�6RFNHWV�3DUDGLJP7KH�6RFNHWV�SDUDGLJP�ZDV�ILUVW�LQWURGXFHG�LQ�%HUNHOH\�81,;���%6'��LQ�WKH�HDUO\�����V��,QLWLDOO\�GHVLJQHG�DV�D�ORFDO�,3&��LQWHU�SURFHVV�FRPPXQLFDWLRQ��PHFKDQLVP��VRFNHWV�HYROYHG�LQWR�D�QHWZRUN�,3&�PHFKDQLVP�IRU�WKH�EXLOW�LQ�7&3�,3�SURWRFRO�IDPLO\��$�VRFNHW�VLPSO\�GHILQHV�D�ELGLUHFWLRQDO�HQGSRLQW�IRU�FRPPXQLFDWLRQ�EHWZHHQ�SURFHVVHV��%LGLUHFWLRQDO�VLPSO\�LPSOLHV�WKDW�:LQGRZV�6RFNHWV�DOORZ�DSSOLFDWLRQV�WR�WUDQVPLW�DV�ZHOO�DV�UHFHLYH�GDWD�WKURXJK�WKHVH�FRQQHFWLRQV�

$�VRFNHW�KDV�WKUHH�SULPDU\�FRPSRQHQWV��WKH�LQWHUIDFH�WR�ZKLFK�LW�LV�ERXQG��VSHFLILHG�E\�DQ�,3�DGGUHVV���WKH�SRUW�QXPEHU��RU�,'�WR�ZKLFK�LW�ZLOO�EH�VHQGLQJ�RU�UHFHLYLQJ�GDWD��DQG�WKH�W\SH�RI�VRFNHW��HLWKHU�VWUHDP�RU�GDWDJUDP���7\SLFDOO\��D�VHUYHU�DSSOLFDWLRQ�OLVWHQV�RQ�D�ZHOO�NQRZQ�SRUW�RYHU�DOO�LQVWDOOHG�QHWZRUN�LQWHUIDFHV��2Q�WKH�RWKHU�KDQG��D�FOLHQW�JHQHUDOO\�LQLWLDWHV�FRPPXQLFDWLRQ�IURP�D�VSHFLILF�LQWHUIDFH�IURP�DQ\�SRUW�WKDW�WKH�V\VWHP�KDV�DYDLODEOH��7KH�W\SH�RI�WKH�VRFNHW��VWUHDP�RU�GDWDJUDP��GHSHQGV�HQWLUHO\�RQ�WKH�QHHGV�RI�WKH�DSSOLFDWLRQ��:LQGRZV�6RFNHWV�LV�FORVHO\�UHODWHG�WR�WKH�%HUNHOH\�VRFNHWV�PRGHO��PDQ\�RI�WKH�$3,V�DUH�LGHQWLFDO��RU�YHU\�FORVH��,Q�DGGLWLRQ�WR�WKH�%HUNHOH\�VW\OH�IXQFWLRQV��:LQGRZV�6RFNHWV�RIIHUV�D�FODVV�RI�DV\QFKURQRXV�H[WHQVLRQV�ZKLFK�IDFLOLWDWH�WKH�GHYHORSPHQW�RI�PRUH��:LQGRZV�IULHQGO\��DSSOLFDWLRQV��7KHVH�H[WHQVLRQV�ZLOO�EH�GLVFXVVHG�LQ�GHWDLO�ODWHU�LQ�WKLV�DUWLFOH�

6WUHDP�YV��'DWDJUDP�6RFNHWV

7KH�:LQGRZV�6RFNHWV�PRGHO�RIIHUV�VHUYLFH�IRU�ERWK�FRQQHFWLRQ�RULHQWHG�DQG�FRQQHFWLRQOHVV�SURWRFROV��,Q�WKH�7&3�,3�SURWRFRO�IDPLO\��7&3�SURYLGHV�D�FRQQHFWLRQ�RULHQWHG�VHUYLFH��ZKHUHDV�8'3��XVHU�GDWDJUDP�SURWRFRO��RIIHUV�FRQQHFWLRQOHVV�VHUYLFH��,Q�WKH�:LQGRZV�6RFNHWV�PRGHO��FRQQHFWLRQ�RULHQWHG�VHUYLFH�LV�RIIHUHG�E\�VWUHDP�VRFNHWV��FRQQHFWLRQOHVV�VHUYLFH�LV�SURYLGHG�E\�GDWDJUDP�VRFNHWV��

7&3�LV�D�UHOLDEOH��FRQQHFWLRQ�RULHQWHG�SURWRFRO��XVHG�E\�DSSOLFDWLRQV�ZKLFK�HLWKHU�SODQ�WR�H[FKDQJH�ODUJH�DPRXQWV�RI�GDWD�DW�D�WLPH��RU�E\�DSSOLFDWLRQV�ZKLFK�UHTXLUH�UHOLDELOLW\�DQG�VHTXHQFLQJ��)RU�H[DPSOH��)73��ILOH�WUDQVIHU�SURWRFRO���D�SURWRFRO�ZKLFK�IDFLOLWDWHV�WKH�ELQDU\�RU�$6&,,�WUDQVIHU�RI�DUELWUDULO\�ODUJH�ILOHV��UHSUHVHQWV�DQ�DSSOLFDWLRQ�ZULWWHQ�WR�7&3�RU�VWUHDP�VRFNHWV��,Q�FRQWUDVW��LI�DQ�DSSOLFDWLRQ�LV�ZLOOLQJ�WR�PDQDJH�LWV�RZQ�VHTXHQFLQJ�RU�UHOLDELOLW\��RU�LV�XVLQJ�WKH�QHWZRUN�IRU�ORZ�EDQGZLGWK�LWHUDWLYH�SURFHVVLQJ��8'3�LV�RIWHQ�XVHG��$Q�DSSOLFDWLRQ�ZKLFK�NHHSV�V\VWHP�FORFNV�V\QFKURQL]HG�E\�SHULRGLFDOO\�EURDGFDVWLQJ�LWV�V\VWHP�WLPH�ZRXOG�SUREDEO\�EH�ZULWWHQ�WR�XVH�8'3�

1HWZRUN�E\WH�2UGHU

6LQFH�:LQGRZV�6RFNHWV�DSSOLFDWLRQV�FDQW�SRVVLEO\�EH�DZDUH�RI�ZKDW�W\SH�RI�UHPRWH�FRPSXWHU�V\VWHP�WKDW�WKH\�ZLOO�EH�GHDOLQJ�ZLWK�D�SULRUL��LW�LV�QHFHVVDU\�WR�GHILQH�D�FRPPRQ�GDWD�UHSUHVHQWDWLRQ�PRGHO�IRU�YLWDO�LQIRUPDWLRQ��:LQGRZV�6RFNHWV�FKRVH�WKH�ELJ�HQGLDQ�PRGHO�IRU�WKH��RQ�WKH�ZLUH��GDWD�UHSUHVHQWDWLRQ��NQRZQ�DV�QHWZRUN�E\WH�RUGHU�

Page 9: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 9 of 50

file:C:\TEMP\01becc72.htm 9/3/99

7KH�:LQGRZV�6RFNHWV�LQWHUIDFH�RIIHUV�$3,V�WR�DSSOLFDWLRQ�SURJUDPPHUV�WR�GR�WKH�QHFHVVDU\�FRQYHUVLRQ�EHWZHHQ�WKH�ORFDO�V\VWHP�UHSUHVHQWDWLRQ��RU�KRVW�E\WH�RUGHU��DQG�QHWZRUN�E\WH�RUGHU��7KHUH�LV�QR�KDUP�LQ�XVLQJ�WKHVH�URXWLQHV�RQ�V\VWHPV�ZKLFK�VWRUH�GDWD�LQ�ELJ�HQGLDQ�QDWLYHO\��LQ�IDFW��LWV�HQFRXUDJHG��%\�UHOLJLRXVO\�XVLQJ�WKH�E\WH�RUGHULQJ�$3,V��\RXU�FRGH�FDQ�EH�XVHG�RQ�V\VWHPV�ZLWK�GLIIHUHQW�LQWHUQDO�UHSUHVHQWDWLRQV�ZLWKRXW�LQKHULWLQJ�E\WH�RUGHULQJ�SUREOHPV��WKHUHE\�PDNLQJ�\RXU�FRGH�PRUH�SRUWDEOH�

$�*XLGHG�7RXU�RI�WKH�:LQGRZV�6RFNHWV�$3,$OWKRXJK�WKH�:LQGRZV�6RFNHWV�VSHFLILFDWLRQ�GHILQHV�DOO�RI�WKH�:LQGRZV�6RFNHWV�IXQFWLRQV�DQG�VWUXFWXUHV��WKLV�JXLGHG�WRXU�RI�WKH�$3,�ZLOO�JLYH�\RX�D�EDVLF�XQGHUVWDQGLQJ�RI�WKH�EXLOGLQJ�EORFNV�RI�D�:LQGRZV�6RFNHWV�DSSOLFDWLRQ��)ROORZLQJ�WKH�ZDONWKURXJK��ZH�ZLOO�GLVFXVV�WKH�XVH�RI�:LQGRZV�6RFNHWV�E\�WKH�:RUP+ROH�VDPSOH�DSSOLFDWLRQ�

7KH�%DVLF�6WUXFWXUHV

$OWKRXJK�WKH�:LQGRZV�6RFNHWV�VSHFLILFDWLRQ�FRQWDLQV�DERXW�D�GR]HQ�GLIIHUHQW�VWUXFWXUHV��DSSOLFDWLRQ�GHYHORSHUV�ZLOO�TXLFNO\�EHFRPH�IDPLOLDU�ZLWK�D�IHZ�WKDW�DUH�UHTXLUHG�E\�QHDUO\�DOO�:LQGRZV�6RFNHWV�DSSOLFDWLRQV��

struct sockaddr { u_short sa_family; char sa_data[14];};struct sockaddr_in { short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8];};

7KH�VRFNDGGU�VWUXFWXUH�LV�XVHG�E\�:LQGRZV�6RFNHWV�WR�VSHFLI\�D�ORFDO�RU�UHPRWH�HQGSRLQW�DGGUHVV�WR�ZKLFK�WR�FRQQHFW�D�VRFNHW��$Q�HQGSRLQW�DGGUHVV�VLPSO\�FRQWDLQV�WKH�DSSURSULDWH�LQIRUPDWLRQ�WR�VHQG�GDWD�EHWZHHQ�WZR�VRFNHWV�RQ�GLIIHUHQW�V\VWHPV��$V�WKH�FRQWHQWV�RI�HQGSRLQW�DGGUHVVHV�GLIIHU�EHWZHHQ�QHWZRUN�SURWRFRO�IDPLOLHV��WKH�VRFNDGGU�VWUXFWXUH�ZDV�GHVLJQHG�WR�DFFRPPRGDWH�HQGSRLQW�DGGUHVVHV�RI�YDULDEOH�VL]H��VDWLVI\LQJ�UHTXLUHPHQWV�RI�PDQ\�FRPPRQ�QHWZRUN�SURWRFRO�IDPLOLHV��7KH�ILUVW�ILHOG�RI�D�VRFNDGGU�FRQWDLQV�WKH�IDPLO\�QXPEHU�LGHQWLI\LQJ�WKH�IRUPDW�RI�WKH�UHPDLQLQJ�SDUW�RI�WKH�DGGUHVV�

,Q�WKH�,QWHUQHW�DGGUHVV�IDPLO\��WKH�VRFNDGGUBLQ�VWUXFWXUH�LV�XVHG�WR�VWRUH�WKH�HQGSRLQW�DGGUHVV�LQIRUPDWLRQ�DQG�LV�FDVW�WR�W\SH�VRFNDGGU�IRU�WKH�IXQFWLRQV�ZKLFK�UHTXLUH�LW��2WKHU�DGGUHVV�IDPLOLHV�PXVW�GHILQH�WKHLU�RZQ�VRFNDGGUB�VWUXFWXUHV�DV�DSSURSULDWH�IRU�WKHLU�QHHGV��)RU�7&3�,3��WKH�VRFNDGGUBLQ�VWUXFWXUH�EUHDNV�WKH�HQGSRLQW�DGGUHVV�LQWR�LWV�WZR�FRPSRQHQWV��SRUW�,'��VLQBSRUW��DQG�,3�DGGUHVV��VLQBDGGU���DQG�SDGV�WKH�UHPDLQLQJ�HLJKW�E\WHV�RI�WKH�HQGSRLQW�DGGUHVV�ZLWK�D�FKDUDFWHU�VWULQJ��VLQB]HUR���7KH�SRUW�DQG�,3�DGGUHVV�YDOXHV�DUH�DOZD\V�VSHFLILHG�LQ�QHWZRUN�E\WH�RUGHU��7KH�YDOXH�IRU�VLQBIDPLO\�XQGHU�7&3�,3�LV�DOZD\V�$)B,1(7��DGGUHVV�IDPLO\�,QWHUQHW��

Page 10: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 10 of 50

file:C:\TEMP\01becc72.htm 9/3/99

struct hostent { char FAR * h_name; char FAR * FAR * h_aliases; short h_addrtype; short h_length; char FAR * FAR * h_addr_list;};

7KH�KRVWHQW�VWUXFWXUH�LV�JHQHUDOO\�XVHG�E\�WKH�:LQGRZV�6RFNHWV�GDWDEDVH�URXWLQHV�WR�UHWXUQ�KRVW��RU�V\VWHP��LQIRUPDWLRQ�DERXW�D�VSHFLILHG�V\VWHP�RQ�WKH�QHWZRUN��7KH�KRVW�VWUXFWXUH�FRQWDLQV�WKH�SULPDU\�QDPH�IRU�D�V\VWHP�LQFOXGLQJ�RSWLRQDO�DOLDVHV�IRU�WKH�SULPDU\�QDPH��$GGLWLRQDOO\��LW�FRQWDLQV�D�OLVW�RI�DGGUHVV�HV��IRU�WKH�VSHFLILHG�V\VWHP��7KLV�LQIRUPDWLRQ�LV�JHQHUDOO\�VRXJKW�IRU�WKH�UHPRWH�V\VWHP�WR�ZKLFK�DQ�DSSOLFDWLRQ�LV�FRQQHFWLQJ�XVLQJ�WKH�:LQGRZV�6RFNHWV�GDWDEDVH�URXWLQHV�GHVFULEHG�ODWHU�

struct protoent { char FAR * p_name; char FAR * FAR * p_aliases; short p_proto; };

struct servent { char FAR * s_name; char FAR * FAR * s_aliases; short s_port; char FAR * s_proto; };

7KH�SURWRHQW�DQG�VHUYHQW�VWUXFWXUHV�DUH�DOVR�ILOOHG�E\�WKH�:LQGRZV�6RFNHWV�GDWDEDVH�URXWLQHV��7KHVH�VWUXFWXUHV�FRQWDLQ�LQIRUPDWLRQ�DERXW�D�SDUWLFXODU�SURWRFRO��7&3�RU�8'3��RU�VHUYLFH��ILQJHU�RU�WHOQHW��IRU�H[DPSOH��UHVSHFWLYHO\��$ORQJ�ZLWK�WKH�SULPDU\�QDPH�DQG�DQ�DUUD\�RI�DOLDVHV�IRU�WKH�SURWRFRO�RU�VHUYLFH��WKHVH�VWUXFWXUHV�DOVR�FRQWDLQ�WKHLU�FRUUHVSRQGLQJ����ELW�,'V��QHFHVVDU\�WR�EXLOG�D�YDOLG�7&3�,3�HQGSRLQW�DGGUHVV�

typedef struct WSAData { WORD wVersion; WORD wHighVersion; char szDescription[WSADESCRIPTION_LEN+1]; char szSystemStatus[WSASYS_STATUS_LEN+1]; unsigned short iMaxSockets; unsigned short iMaxUdpDg; char FAR * lpVendorInfo;} WSADATA;

)LQDOO\��WKH�:6$'DWD�VWUXFWXUH�LV�ILOOHG�LQ�E\�D�:LQGRZV�6RFNHWV�'//�ZKHQ�DQ�DSSOLFDWLRQ�FDOOV�WKH�:6$6WDUWXS���$3,��$ORQJ�ZLWK�:LQGRZV�

Page 11: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 11 of 50

file:C:\TEMP\01becc72.htm 9/3/99

6RFNHWV�YHUVLRQ�LQIRUPDWLRQ��WKH�VWUXFWXUH�DOVR�FRQWDLQV�YHQGRU�VSHFLILF�LQIRUPDWLRQ��VXFK�DV�WKH�PD[LPXP�QXPEHU�RI�VRFNHWV�DYDLODEOH�DQG�WKH�PD[LPXP�GDWDJUDP�VL]H��7KH�V]'HVFULSWLRQ�DQG�V]6\VWHP6WDWXV�PHPEHUV�FDQ�EH�XVHG�E\�DQ�LPSOHPHQWDWLRQ�WR�LGHQWLI\�LWVHOI�DQG�WKH�FXUUHQW�VWDWXV�RI�WKH�'//��)RU�H[DPSOH��DQ�LPSOHPHQWDWLRQ�PD\�UHWXUQ�WKH�WH[W��-RHV�6KDUH:DUH�:LQGRZV�6RFNHWV�LPSOHPHQWDWLRQ�Y���������������LQ�V]'HVFULSWLRQ��7KH�VSHFLILFDWLRQ�RI�WKH�OS9HQGRU,QIR�PHPEHU�LV�FRPSOHWHO\�XS�WR�DQ�LPSOHPHQWRU�DQG�LV�QRW�GHILQHG�LQ�WKH�:LQGRZV�6RFNHWV�VSHFLILFDWLRQ�

6HWWLQJ�8S��DQG�&OHDQLQJ�8S�<RXU�:LQGRZV�6RFNHWV�$SSOLFDWLRQ

$V�PHQWLRQHG�HDUOLHU��:LQGRZV�6RFNHWV�RIIHUV�VRPH�H[WHQVLRQV�WR�WKH�%HUNHOH\�VRFNHWV�SDUDGLJP�WR�DOORZ�\RXU�DSSOLFDWLRQ�WR�EH�PRUH��IULHQGO\��LQ�WKH�:LQGRZV�(QYLURQPHQW��$OO�VXFK�IXQFWLRQV�DUH�SUHFHGHG�E\�WKH�FKDUDFWHUV��:6$���ZKLFK�LV�VKRUW�IRU��:LQGRZV�6RFNHWV�$3,���$OWKRXJK�WKH�XVH�RI�:6$�IXQFWLRQV�LV�VWURQJO\�DGYLVHG��WKHUH�DUH�WZR�:6$�IXQFWLRQV�WKDW�\RXU�DSSOLFDWLRQ�FDQW�DYRLG��:6$6WDUWXS���DQG�:6$&OHDQXS���

:6$6WDUWXS����DWWDFKHV��\RXU�DSSOLFDWLRQ�WR�:LQGRZV�6RFNHWV�DQG�FDXVHV�WKH�:LQGRZV�6RFNHWV�'//�WR�LQLWLDOL]H�DQ\�VWUXFWXUHV�WKDW�LW�PLJKW�QHHG�IRU�RSHUDWLRQ��$GGLWLRQDOO\��:6$6WDUWXS���SHUIRUPV�YHUVLRQ�QHJRWLDWLRQ�DQG�IRUFHV�DQ�LQWHUQDO�:LQGRZV�6RFNHWV�UHIHUHQFH�FRXQW�WR�EH�LQFUHPHQWHG��7KLV�UHIHUHQFH�FRXQW�DOORZV�:LQGRZV�6RFNHWV�WR�PDLQWDLQ�WKH�QXPEHU�RI�DSSOLFDWLRQV�RQ�WKH�ORFDO�V\VWHP�UHTXLULQJ�:LQGRZV�6RFNHWV�VHUYLFHV�DQG�VWUXFWXUHV��7KH�YHUVLRQ�QHJRWLDWLRQ�DOORZV�DQ�DSSOLFDWLRQ�WR�GHWHUPLQH�ZKHWKHU�RU�QRW�WKH�XQGHUO\LQJ�:LQGRZV�6RFNHWV�LPSOHPHQWDWLRQ�LV�DEOH�WR�VXSSRUW�WKH�VDPH�YHUVLRQ�RI�WKH�:LQGRZV�6RFNHWV�VSHFLILFDWLRQ�WKDW�WKH�DSSOLFDWLRQ�LV�ZULWWHQ�WR��$�:LQGRZV�6RFNHWV�LPSOHPHQWDWLRQ�PD\�RU�PD\�QRW�VXSSRUW�PXOWLSOH�YHUVLRQV�RI�WKH�VSHFLILFDWLRQ��2WKHU�:LQGRZV�6RFNHWV�VSHFLILF�LQIRUPDWLRQ�PD\�DOVR�EH�ILOOHG�LQ�VXFK�DV�WKH�YHQGRU�RI�WKH�LPSOHPHQWDWLRQ��WKH�PD[LPXP�GDWDJUDP�VL]H�VXSSRUWHG��PD[LPXP�QXPEHU�RI�VRFNHWV�ZKLFK�DQ�DSSOLFDWLRQ�FDQ�RSHQ��DQG�PRUH�

7KH�IROORZLQJ�VWDUWXS�FRGH�LV�DXWKRUHG�WR�UXQ�RQO\�XQGHU�YHUVLRQ������WKH�PRVW�FXUUHQW�YHUVLRQ�RI�WKH�:LQGRZV�6RFNHWV�VSHFLILFDWLRQ��RU�ODWHU��DQG�UHTXLUHV�WKDW�DW�OHDVW�VL[�VRFNHWV�EH�DYDLODEOH�WR�WKH�FDOOLQJ�DSSOLFDWLRQ�

#define WS_VERSION_REQD 0x0101#define WS_VERSION_MAJOR HIBYTE(WS_VERSION_REQD)#define WS_VERSION_MINOR LOBYTE(WS_VERSION_REQD)#define MIN_SOCKETS_REQD 6

WSADATA wsaData;char buf[MAX_BUF_LEN];int error;

.

.

.error=WSAStartup(WS_VERSION_REQUIRED,&wsaData);if (error !=0 ) { /* Report that Windows Sockets did not respond to the WSAStartup() call */

Page 12: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 12 of 50

file:C:\TEMP\01becc72.htm 9/3/99

sprintf(buf,"WINSOCK.DLL not responding."); MessageBox (hWnd, buf. "Windows Sockets Error",MB_OK); shutdown_app();}

if (( LOBYTE (wsaData.wVersion) < WS_VERSION_MAJOR) || ( LOBYTE (wsaData.wVersion) == WS_VERSION_MAJOR && HIBYTE (wsaData.wVersion) < WS_VERSION_MINOR)) {

/* Report that the application requires Windows Sockets version WS_VERSION_REQD */ /* compliance and that the WINSOCK.DLL on the system does not support it. */

sprintf(buf,"Windows Sockets version %d.%d not supported by WINSOCK.DLL", LOBYTE (wsaData.wVersion), HIBYTE (wsaData.wVersion)); MessageBox (hWnd, buf. "Windows Sockets Error",MB_OK); shutdown_app();}

if (wsaData.iMaxSockets < MIN_SOCKETS_REQUIRED ) { /* Report that WINSOCK.DLL was unable to support the minimum number of */ /* sockets (MIN_SOCKETS_REQD) for the application */

sprintf(buf,"This application requires a minimum of %d supported sockets.", MIN_SOCKETS_REQUIRED); MessageBox (hWnd, buf. "Windows Sockets Error",MB_OK); shutdown_app();}.

$�:LQGRZV�6RFNHWV�DSSOLFDWLRQ�JHQHUDOO\�FDOOV:6$&OHDQXS���GXULQJ�LWV�RZQ�FOHDQXS��GHFUHPHQWLQJ�WKH�LQWHUQDO�UHIHUHQFH�FRXQW�DQG�OHWWLQJ�:LQGRZV�6RFNHWV�NQRZ�WKDW�LWV�QR�ORQJHU�QHHGHG�E\�WKH�FDOOLQJ�DSSOLFDWLRQ��:KDWHYHU�FOHDQXS�WKLV�IXQFWLRQ�IRUFHV�LV�LPSOHPHQWDWLRQ�VSHFLILF�DQG�VKLHOGHG�IURP�WKH�DSSOLFDWLRQ��7KH�DSSOLFDWLRQ�DXWKRU�VKRXOG��KRZHYHU��FKHFN�IRU�DQ\�SRVVLEOH�HUURU�FRQGLWLRQV�IURP�:6$&OHDQXS���DQG�UHSRUW�WKHP�EHIRUH�H[LWLQJ��DV�WKLV�LQIRUPDWLRQ�PLJKW�LQGLFDWH�D�QHWZRUN�OD\HU�SUREOHP�LQ�WKH�V\VWHP�

(UURU�+DQGOLQJ�

,Q�RUGHU�WR�SURYLGH�D�FRQVLVWHQW�PHFKDQLVP�IRU�UHSRUWLQJ�HUURUV�DQG�WR�HQVXUH�VDIHW\�RI�:LQGRZV�6RFNHWV�DSSOLFDWLRQV�LQ�PXOWLWKUHDGHG�YHUVLRQV�RI�:LQGRZV��OLNH�:LQGRZV�17���WKH�:6$*HW/DVW(UURU���$3,�ZDV�LQWURGXFHG�DV�D�PHDQV�WR�JHW�WKH�FRGH�IRU�WKH�ODVW�QHWZRUN�HUURU�RQ�D�SDUWLFXODU�WKUHDG��8QGHU�:LQGRZV���[��WKUHDG�VDIHW\�LV�QRW�DQ�LVVXH��DOWKRXJK�:6$*HW/DVW(UURU���LV�VWLOO�WKH�DSSURSULDWH�ZD\�WR�FKHFN�IRU�H[WHQGHG�HUURU�FRGHV��0DQ\�IXQFWLRQV�LQ�WKH�:LQGRZV�6RFNHWV�$3,�VHW�UHWXUQ�DQ�HUURU�FRGH�LQ�WKH�HYHQW�WKDW�WKHUH�ZDV�D�SUREOHP��DQG�UHO\�RQ�WKH�DSSOLFDWLRQ�WR�FDOO�:6$*HW/DVW(UURU���WR�JHW�PRUH�GHWDLOHG�LQIRUPDWLRQ�RQ�WKH�IDLOXUH��7KH�IROORZLQJ�FRGH�LOOXVWUDWHV�KRZ�DQ�DSSOLFDWLRQ�PLJKW�UHSRUW�DQ�HUURU�WR�D�XVHU�

Page 13: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 13 of 50

file:C:\TEMP\01becc72.htm 9/3/99

LPHOSTENT host_info;char user_buf[MAX_BUF], appl_buf[MAX_BUF];.../* Attempt to resolve hostname specified by XVHUBEXI�return meaningful *//* message to the user in the event of an error. */

host_info=gethostbyname(user_buf);if(host_info==NULL){ sprintf(buf,"Windows Sockets error %d: Hostname: %s couldn’t be resolved.", WSAGetLastError(),user_buf); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK);}...

,Q�DGGLWLRQ�WR�WKH�:6$*HW/DVW(UURU���$3,��DQ�DSSOLFDWLRQ�PD\�FKRRVH�WR�XVH�WKH�:6$6HW/DVW(UURU���$3,�WR�VHW�D�QHWZRUN�HUURU�FRQGLWLRQ�ZKLFK�ZLOO�EH�UHWXUQHG�E\�D�VXEVHTXHQW�:6$*HW/DVW(UURU���FDOO��2EYLRXVO\��DQ\�:LQGRZV�6RFNHWV�FDOOV�PDGH�EHWZHHQ�D�:6$6HW/DVW(UURU���DQG�:6$*HW/DVW(UURU���SDLU�ZLOO�RYHUULGH�WKH�FRGH�VHW�E\�WKH�:6$6HW/DVW(UURU���FDOO�

'DWDEDVH�5RXWLQHV

7KH�7&3�,3�SURWRFRO�UHOLHV�RQ�WKH�ELQDU\�UHSUHVHQWDWLRQV�IRU�DGGUHVVHV�DQG�YDULRXV�RWKHU�LGHQWLILHUV��+RZHYHU��HQG�XVHUV�DQG�SURJUDPPHUV�SUHIHU�WR�XVH�HDV\�WR�UHPHPEHU�QDPHV��VXFK�DV��IWS�UKLQR�PLFURVRIW�FRP����,W�LV�WKHUHIRUH�QHFHVVDU\�WR�SURYLGH�D�FRPPRQ�PHWKRG�WR�UHVROYH�ERWK�VHUYLFHV�DQG�KRVWQDPHV�LQWR�WKHLU�UHVSHFWLYH�ELQDU\�HTXLYDOHQWV��7R�VROYH�WKLV��WKH�:LQGRZV�6RFNHWV�VSHFLILFDWLRQ�RIIHUV�D�VHW�RI�$3,V�NQRZQ�DV�WKH�GDWDEDVH�URXWLQHV��

7KH�GDWDEDVH�URXWLQHV�IDOO�LQWR�WKUHH�FDWHJRULHV�

KRVW�UHVROXWLRQ /HDUQLQJ�WKH�,3�DGGUHVV�IRU�D�KRVW�EDVHG�RQ�V\VWHP��RU�KRVW�QDPH

SURWRFRO�UHVROXWLRQ /HDUQLQJ�WKH�SURWRFRO�,'�RI�D�VSHFLILF�PHPEHU�RI�D�SURWRFRO�IDPLO\��7&3��IRU�H[DPSOH�

VHUYLFH�UHVROXWLRQ /HDUQLQJ�WKH�SRUW�,'�RI�D�VHUYLFH�EDVHG�RQ�D�VHUYLFH�QDPH�SURWRFRO�SDLU

$OO�WKH�GDWDEDVH�URXWLQHV�UHWXUQ�LQIRUPDWLRQ�LQ�VWUXFWXUHV�GHILQHG�LQ�WKH�SUHYLRXV�VHFWLRQ��

$SSOLFDWLRQV�XVH�WKH�JHWKRVWE\QDPH���DQG�JHWKRVWE\DGGU���IXQFWLRQV�WR�OHDUQ�DERXW�WKH�QDPHV�DQG�,3�DGGUHVV�HV��RI�D�SDUWLFXODU�V\VWHP��NQRZLQJ�RQO\�WKH�QDPH�RU�WKH�DGGUHVV�RI�WKH�V\VWHP��%RWK�FDOOV�UHWXUQ�D�SRLQWHU�WR�D�KRVWHQW�VWUXFWXUH�DV�GHILQHG�LQ�WKH�SUHYLRXV�VHFWLRQ��7KH�

Page 14: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 14 of 50

file:C:\TEMP\01becc72.htm 9/3/99

JHWKRVWE\QDPH���FDOO�VLPSO\�DFFHSWV�D�SRLQWHU�WR�D�QXOO�WHUPLQDWHG�VWULQJ�UHSUHVHQWLQJ�WKH�QDPH�RI�WKH�V\VWHP�WR�UHVROYH��7KH�JHWKRVWE\DGGU���LQVWHDG�DFFHSWV�WKUHH�SDUDPHWHUV��D�SRLQWHU�WR�WKH�DGGUHVV��LQ�QHWZRUN�E\WH�RUGHU���WKH�OHQJWK�RI�WKH�DGGUHVV��DQG�WKH�W\SH�RI�DGGUHVV�

*HQHUDOO\�WKH�KRVWQDPH�RU�,3�DGGUHVV�LV�RIIHUHG�WR�WKH�DSSOLFDWLRQ�E\�WKH�XVHU�WR�VSHFLI\�D�UHPRWH�V\VWHP�WR�FRQQHFW�WR��DQG�WKH�,3�DGGUHVV�LV�UHVROYHG�E\�:LQGRZV�6RFNHWV�E\�HLWKHU�SDUVLQJ�D�ORFDO�KRVWV�ILOH��RU�TXHU\LQJ�D�'16��GRPDLQ�QDPH�V\VWHP��VHUYHU��7KH�GHWDLOV�RI�WKH�UHVROXWLRQ�KRZHYHU��DUH�VSHFLILF�WR�WKH�LPSOHPHQWDWLRQ��DEVWUDFWHG�IURP�WKH�DSSOLFDWLRQ�E\�WKHVH�$3,V�

7KH�JHWVHUYE\QDPH���DQG�JHWVHUYE\SRUW���IXQFWLRQV�UHWXUQ�LQIRUPDWLRQ�DERXW�ZHOO�NQRZQ�:LQGRZV�6RFNHWV�VHUYLFHV��RU�DSSOLFDWLRQV��(DFK�RI�WKHVH�V\VWHP�FDOOV�UHWXUQ�D�SRLQWHU�WR�D�VHUYHQW�VWUXFWXUH��DV�GHILQHG�LQ�WKH�SUHYLRXV�VHFWLRQ��7\SLFDOO\�DQ�DSSOLFDWLRQ�ZLOO�XVH�WKHVH�FDOOV�WR�GHWHUPLQH�WKH�SRUW�,'�IRU�D�ZHOO�NQRZQ�VHUYLFH��VXFK�DV�)73��WR�FUHDWH�DQ�HQGSRLQW�DGGUHVV��

7KH�IROORZLQJ�FRGH�IUDJPHQW�GHPRQVWUDWHV�WKH�XVH�RI�WKH�JHWVHUYE\QDPH���IXQFWLRQ�WR�ILOO�LQ�WKH�VRFNDGGUBLQ�VWUXFWXUH�ZKLFK�ZLOO�EH�XVHG�WR�FRQQHFW�D�VRFNHW�WR�D�ZHOO�NQRZQ�SRUW��WKH�)73�SURWRFRO�SRUW�RYHU�7&3��

char buf [MAX_BUF_LEN];struct sockaddr_in srv_addr;LPSERVENT srv_info;LPHOSTENT host_info;SOCKET s;.../* Get FTP service port information */

srv_info=getservbyname("ftp","tcp");

if (srv_info== NULL) { /* Couldn’t find an entry for "ftp" over "tcp" */

sprintf(buf,"Windows Sockets error %d: Couldn’t resolve FTP service port.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app();}

/* Set up socket */

srv_addr.sin_family = AF_INET;srv_addr.sin_addr.s_addr = INADDR_ANY;srv_addr.sin_port=srv_info->s_port;

7KH�H[DPSOH�XVHV�JHWVHUYE\QDPH���WR�UHVROYH�WKH�SRUW�QXPEHU�RI�WKH�)73�VHUYLFH�RYHU�7&3��7KH�SRUW�,'�LV�XVHG�WR�FRQVWUXFW�WKH�VRFNDGGUBLQ�VWUXFWXUH��HQGSRLQW�DGGUHVV��IRU�IXWXUH�XVH�E\�WKH�DSSOLFDWLRQ��$V�ZH�PHQWLRQHG�EHIRUH��WKH�DGGUHVV�IDPLO\�IRU�7&3�,3�LV�DOZD\V�DVVLJQHG�DV�

Page 15: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 15 of 50

file:C:\TEMP\01becc72.htm 9/3/99

$)B,1(7��:H�XVH�WKH�,1$''5B$1<�PDFUR�WR�VSHFLI\�DQ\�ORFDO�,3�LQWHUIDFH�WR�DFFHSW�LQFRPLQJ�FRQQHFWLRQV��PRUH�RQ�WKLV�ODWHU��

7R�URXQG�RXW�WKH�GDWDEDVH�URXWLQHV��JHWSURWRE\QDPH���DQG�JHWSURWRE\QXPEHU���ILOO�LQ�D�SURWRHQW�VWUXFWXUH��VRPHWLPHV�XVHG�E\�DSSOLFDWLRQV�WR�FUHDWH�D�VRFNHW�RYHU�D�SDUWLFXODU�SURWRFRO��H�J���8'3�RU�7&3���0RUH�RIWHQ��KRZHYHU��DQ�DSSOLFDWLRQ�ZLOO�XVH�WKH�62&.B'*5$0�DQG�62&.B675($0�PDFURV�WR�FUHDWH�HLWKHU�GDWDJUDP�RU�VWUHDP�VRFNHWV�

'DWD�0DQLSXODWLRQ�5RXWLQHV

7KHUH�DUH�VHYHUDO�URXWLQHV�WKDW�FRQYHUW�YDOXHV�EHWZHHQ�QHWZRUN�E\WH�RUGHU�DQG�KRVW��RU�ORFDO�V\VWHP��E\WH�RUGHU��:LQGRZV�6RFNHWV�RIIHUV�E\WH�RUGHULQJ�URXWLQHV�IRU�����DQG����ELW�YDOXHV�IURP�ERWK�KRVW�E\WH�RUGHU�DQG�QHWZRUN�E\WH�RUGHU��7KH�KWRQV���IXQFWLRQ�WDNHV�D����ELW�YDOXH��D�VKRUW���DQG�FRQYHUWV�LW�IURP�KRVW�E\WH�RUGHU�WR�QHWZRUN�E\WH�RUGHU²KHQFH�WKH�QDPH�KWRQV��KRVW�WR�QHWZRUN�VKRUW���7KH�RWKHU�E\WH�RUGHULQJ�IXQFWLRQV�DYDLODEOH�DUH�KWRQO����QWRKV����DQG�QWRKO���

7KHUH�DUH�WZR�RWKHU�XVHIXO�URXWLQHV�RIIHUHG�E\�:LQGRZV�6RFNHWV�ZKLFK�FRQYHUW�,3�DGGUHVVHV�EHWZHHQ�VWULQJV�DQG�QHWZRUN�E\WH�RUGHUHG����ELW�YDOXHV��7KHVH�IXQFWLRQV�DUH�LQHWBQWRD���DQG�LQHWBDGGU����7KHVH�URXWLQHV�DUH�XVHIXO�WR�FRQYHUW�WKH�,3�DGGUHVV�RI�DQ�HQGSRLQW�XVHU�LQSXW��,Q�WKH�IROORZLQJ�H[DPSOH��D�7&3�EDVHG�VHUYHU�DSSOLFDWLRQ�XVHV�WKH�LQHWBQWRD���IXQFWLRQ�WR�ORJ�LQFRPLQJ�FRQQHFWLRQ�DWWHPSWV�

SOCKET cli_sock, srv_sock;LPSOCKADDR_IN cli_addr;char *cli_ip, buf[MAX_BUF];int len;./* Accept incoming connection, create new local socket cli_sock */

cli_sock=accept(srv_sock,(LPSOCKADDR)&cli_addr,&len);

if (cli_sock==INVALID_SOCKET){ return(ERROR);}

/* Convert endpoint IP address from network byte order to ASCII */

cli_ip=inet_ntoa(cli_addr.sin_addr);sprintf(buf,"Incoming connection request from: %s.\n",cli_ip);log_event(buf);

6HWWLQJ�8S�&OLHQW�DQG�6HUYHU�6RFNHWV

0RVW�:LQGRZV�6RFNHWV�DSSOLFDWLRQV�DUH�DV\PPHWULFDO��WKDW�LV��WKHUH�DUH�JHQHUDOO\�WZR�FRPSRQHQWV�WR�WKH�QHWZRUN�DSSOLFDWLRQ²D�FOLHQW�DQG�D�VHUYHU��)UHTXHQWO\��WKHVH�FRPSRQHQWV�DUH�LVRODWHG�LQWR�VHSDUDWH�SURJUDPV��6RPHWLPHV��WKHVH�FRPSRQHQWV�DUH�LQWHJUDWHG�LQWR�D�VLQJOH�

Page 16: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 16 of 50

file:C:\TEMP\01becc72.htm 9/3/99

DSSOLFDWLRQ��VXFK�DV�RXU�VDPSOH�DSSOLFDWLRQ���:KHQ�ERWK�WKH�FOLHQW�DQG�VHUYHU�FRPSRQHQWV�RI�D�QHWZRUNLQJ�DSSOLFDWLRQ�DUH�LQWHJUDWHG��WKH�DSSOLFDWLRQ�LV�JHQHUDOO\�UHIHUUHG�WR�DV�D��SHHU��DSSOLFDWLRQ��%RWK�WKH�FOLHQW�DQG�WKH�VHUYHU�FRPSRQHQWV�JR�WKURXJK�GLIIHUHQW�SURFHGXUHV�WR�UHDG\�WKHPVHOYHV�IRU�QHWZRUNLQJ�E\�PDNLQJ�D�QXPEHU�RI�:LQGRZV�6RFNHWV�$3,�FDOOV��7KH�IROORZLQJ�VWDWH�GLDJUDPV�LOOXVWUDWH�WKH�VWDWH�WUDQVLWLRQV�IRU�VHWWLQJ�XS�FOLHQW��DQG�VHUYHU�VLGH�VRFNHW�DSSOLFDWLRQV�

6HWWLQJ�XS�D�VHUYHU�VLGH�VWUHDP�EDVHG�DSSOLFDWLRQ

Page 17: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 17 of 50

file:C:\TEMP\01becc72.htm 9/3/99

6HWWLQJ�XS�D�FOLHQW�VLGH�VWUHDP�VRFNHW�EDVHG�DSSOLFDWLRQ

7KH�VRFNHW���FDOO�FUHDWHV�DQ�HQGSRLQW�IRU�ERWK�FOLHQW��DQG�VHUYHU�VLGH�DSSOLFDWLRQ�FRPPXQLFDWLRQ��:KHQ�FDOOLQJ�VRFNHW����WKH�DSSOLFDWLRQ�VSHFLILHV�WKH�SURWRFRO�IDPLO\�DQG�HLWKHU�WKH�VRFNHW�W\SH��VWUHDP�RU�GDWDJUDP���RU�WKH�VSHFLILF�SURWRFRO�ZKLFK�LW�H[SHFWV�WR�XVH��IRU�H[DPSOH��7&3���%RWK�WKH�FOLHQW��DQG�VHUYHU�VLGH�RI�D�QHWZRUN�DSSOLFDWLRQ�XVH�WKH�VRFNHW���FDOO�WR�GHILQH�WKHLU�UHVSHFWLYH�HQGSRLQWV��VRFNHW���UHWXUQV�D�VRFNHW�GHVFULSWRU��DQ�LQWHJHU�ZKLFK�XQLTXHO\�LGHQWLILHV�WKH�VRFNHW�FUHDWHG�ZLWKLQ�:LQGRZV�6RFNHWV�

Page 18: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 18 of 50

file:C:\TEMP\01becc72.htm 9/3/99

6HUYHU�VLGH�FRQQHFWLRQ�VHWXS

2QFH�WKH�VRFNHW�LV�FUHDWHG��WKH�VHUYHU�VLGH�DVVRFLDWHV�WKH�IUHVKO\�FUHDWHG�VRFNHW�GHVFULSWRU�DQG�D�ORFDO�HQGSRLQW�DGGUHVV�YLD�WKH�ELQG���$3,��7KH�ORFDO�HQGSRLQW�DGGUHVV�LV�FRPSULVHG�RI�WZR�SLHFHV�RI�GDWD��WKH�,3�DGGUHVV�DQG�WKH�SRUW�,'�IRU�WKH�VRFNHW��7KH�ORFDO�,3�DGGUHVV�LV�XVHG�WR�GHWHUPLQH�ZKLFK�LQWHUIDFHV�WKH�VHUYHU�DSSOLFDWLRQ�ZLOO�DFFHSW�FRQQHFWLRQ�UHTXHVWV�RQ��WKH�SRUW�,'�LGHQWLILHV�WKH�7&3�RU�8'3�SRUW�RQ�ZKLFK�FRQQHFWLRQV�ZLOO�EH�DFFHSWHG��,W�LV�IRU�WKHVH�WZR�YDOXHV�WKDW�WKH�QHWZRUN�E\WH�RUGHULQJ�URXWLQHV��KWRQO����KWRQV����HWF���ZHUH�FUHDWHG��7KHVH�YDOXHV�PXVW�DOZD\V�EH�UHSUHVHQWHG�LQ�QHWZRUN�E\WH�RUGHU�

$OWHUQDWLYHO\��DQ�DSSOLFDWLRQ�PD\�VXEVWLWXWH�WKH�YDOXH�,1$''5B$1<�LQ�SODFH�RI�D�YDOLG�ORFDO�,3�DGGUHVV��DQG�WKH�V\VWHP�ZLOO�DFFHSW�LQFRPLQJ�UHTXHVWV�RQ�DQ\�ORFDO�LQWHUIDFH��DQG�ZLOO�VHQG�UHTXHVWV�RQ�WKH��PRVW�DSSURSULDWH��ORFDO�LQWHUIDFH��,Q�IDFW��PRVW�VHUYHU�DSSOLFDWLRQV�GR�H[DFWO\�WKLV��7R�DVVRFLDWH�D�VRFNHW�ZLWK�DQ\�YDOLG�V\VWHP�SRUW��SURYLGH�D�YDOXH�RI���IRU�WKH��VLQBSRUW�PHPEHU�RI�WKH�VRFNDGGUBLQ�VWUXFWXUH��7KLV�ZLOO�VHOHFW�DQ�XQXVHG�V\VWHP�SRUW�EHWZHHQ������DQG�������$V�PHQWLRQHG�EHIRUH��PRVW�VHUYHU�DSSOLFDWLRQV�OLVWHQ�RQ�D�VSHFLILHG�SRUW��DQG�FOLHQW�DSSOLFDWLRQV�XVH�WKLV�PHFKDQLVP�WR�REWDLQ�DQ�XQXVHG�ORFDO�SRUW��2QFH�DQ�DSSOLFDWLRQ�XVHV�WKLV�PHFKDQLVP�WR�REWDLQ�D�YDOLG�ORFDO�SRUW��LW�PD\�FDOO�JHWVRFNQDPH���WR�GHWHUPLQH�WKH�SRUW�WKH�V\VWHP�VHOHFWHG�

7KH�OLVWHQ���$3,�VHWV�XS�D�FRQQHFWLRQ�TXHXH��,W�DFFHSWV�RQO\�WZR�SDUDPHWHUV��WKH�VRFNHW�GHVFULSWRU�DQG�WKH�TXHXH�OHQJWK��7KH�TXHXH�OHQJWK�LGHQWLILHV�WKH�QXPEHU�RI�RXWVWDQGLQJ�FRQQHFWLRQ�UHTXHVWV�WKDW�ZLOO�EH�DOORZHG�WR�TXHXH�XS�RQ�D�SDUWLFXODU�SRUW�DGGUHVV�SDLU��EHIRUH�GHQ\LQJ�VHUYLFH�WR�LQFRPLQJ�FRQQHFWLRQV�

7KH�DFFHSW���$3,�FRPSOHWHV�D�VWUHDP�EDVHG�VHUYHU�VLGH�FRQQHFWLRQ�E\�DFFHSWLQJ�DQ�LQFRPLQJ�FRQQHFWLRQ�UHTXHVW��DVVLJQLQJ�D�QHZ�VRFNHW�WR�WKH�FRQQHFWLRQ��DQG�UHWXUQLQJ�WKH�RULJLQDO�VRFNHW�WR�WKH�OLVWHQLQJ�VWDWH��7KH�QHZ�VRFNHW�LV�UHWXUQHG�WR�WKH�DSSOLFDWLRQ��DQG�WKH�VHUYHU�FDQ�EHJLQ�LQWHUDFWLQJ�ZLWK�WKH�FOLHQW�RYHU�WKH�QHWZRUN�

&OLHQW�VLGH�FRQQHFWLRQ�VHWXS

)URP�WKH�FOLHQWV�SHUVSHFWLYH��WKH�DSSOLFDWLRQ�DOVR�FUHDWHV�D�VRFNHW�XVLQJ�WKH�VRFNHW���FDOO��7KH�ELQG���FRPPDQG�LV�XVHG�WR�ELQG�WKH�VRFNHW�WR�D�ORFDOO\�VSHFLILHG�HQGSRLQW�DGGUHVV�ZKLFK�WKH�VHUYHU�ZLOO�XVH�WR�WUDQVPLW�GDWD�EDFN�WR�WKH�FOLHQW��2QFH�D�ORFDO�HQGSRLQW�DVVRFLDWLRQ�LV�PDGH��WKH�FRQQHFW���$3,�HVWDEOLVKHV�D�FRQQHFWLRQ�ZLWK�D�UHPRWH�HQGSRLQW��7KLV�URXWLQH�LQLWLDWHV�WKH�QHWZRUN�FRQQHFWLRQ�EHWZHHQ�WKH�WZR�V\VWHPV��2QFH�WKH�FRQQHFWLRQ�LV�PDGH��WKH�FOLHQW�FDQ�EHJLQ�LQWHUDFWLRQ�ZLWK�WKH�VHUYHU�RQ�WKH�QHWZRUN�

$OWKRXJK�WKH�FOLHQW�PD\�FKRRVH�WR�FDOO�ELQG����LW�LV�QRW�QHFHVVDU\�WR�GR�VR��&DOOLQJ�FRQQHFW���ZLWK�DQ�XQERXQG�VRFNHW�ZLOO�VLPSO\�IRUFH�WKH�V\VWHP�WR�FKRRVH�DQ�,3�LQWHUIDFH�DQG�XQLTXH�SRUW�,'�DQG�PDUN�WKH�VRFNHW�DV�ERXQG��0RVW�FOLHQW�VLGH�DSSOLFDWLRQV�QHJOHFW�WKH�ELQG���FDOO�DV�WKHUH�DUH�UDUHO\�VSHFLILF�UHTXLUHPHQWV�IRU�D�SDUWLFXODU�ORFDO�LQWHUIDFH�SRUW�,'�SDLU��

7KH�IROORZLQJ�FRGH�IUDJPHQWV�FUHDWH�DQG�FRQQHFW�D�SDLU�RI�VWUHDP�EDVHG�VRFNHWV�XVLQJ�WKH�$3,�IORZ�RXWOLQHG�DERYH�

6HUYHU�VLGH��FRQQHFWLRQ�RULHQWHG�

#define SERVICE_PORT 5001

SOCKET srv_sock, cli_sock;

Page 19: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 19 of 50

file:C:\TEMP\01becc72.htm 9/3/99

struct sockaddr_in srv_addr, cli_addr;char buf[MAX_BUF_LEN];

/* Create the server-side socket */

srv_sock=socket(AF_INET,SOCK_STREAM,0);if (srv_sock==INVALID_SOCKET){ sprintf(buf,"Windows Sockets error %d: Couldn’t create socket.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app();}

srv_addr.sin_family=AF_INET;srv_addr.sin_addr.s_addr=INADDR_ANY;srv_addr.sin_port=SERVICE_PORT; /* specific port for server to listen on */

/* Bind socket to the appropriate port and interface (INADDR_ANY) */

if (bind(srv_sock,(LPSOCKADDR)&srv_addr,sizeof(srv_addr))==SOCKET_ERROR){ sprintf(buf,"Windows Sockets error %d: Couldn’t bind socket.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app();}

/* Listen for incoming connections */

if (listen(srv_sock,1)==SOCKET_ERROR){

sprintf(buf,"Windows Sockets error %d: Couldn’t set up listen on socket.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app();}

/* Accept and service incoming connection requests indefinitely */

for ( ; ; ) { cli_sock=accept(srv_sock,(LPSOCKADDR)&cli_addr,&addr_len); if (cli_sock==INVALID SOCKET){ sprintf(buf,"Windows Sockets error %d: Couldn’t accept incoming \ connection on socket.",WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app();

Page 20: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 20 of 50

file:C:\TEMP\01becc72.htm 9/3/99

} . /* Client-server network interaction takes place here */ . closesocket(cli_sock);}

&OLHQW�VLGH��FRQQHFWLRQ�RULHQWHG�

/* Static IP address for remote server for example. In reality, this would be specified as a hostname or IP address by the user */

#define SERVER "131.107.1.121"

struct sockaddr_in srv_addr,cli_addr;LPSERVENT srv_info;LPHOSTENT host_info;SOCKET cli_sock;./* Set up client socket */

cli_sock=socket(PF_INET,SOCK_STREAM,0);

if (cli_sock==INVALID_SOCKET){ sprintf(buf,"Windows Sockets error %d: Couldn’t create socket.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app();}

cli_addr.sin_family=AF_INET;cli_addr.sin_addr.s_addr=INADDR_ANY; cli_addr.sin_port=0; /* no specific port req’d */

/* Bind client socket to any local interface and port */

if (bind(cli_sock,(LPSOCKADDR)&cli_addr,sizeof(cli_addr))==SOCKET_ERROR){ sprintf(buf,"Windows Sockets error %d: Couldn’t bind socket.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app();}

Page 21: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 21 of 50

file:C:\TEMP\01becc72.htm 9/3/99

/* Get the remote port ID to connect to for FTP service */

srv_info=getservbyname("ftp","tcp");

if (srv_info== NULL) {

sprintf(buf,"Windows Sockets error %d: Couldn’t resolve FTP service port.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app();}

srv_addr.sin_family = AF_INET;srv_addr.sin_addr.s_addr = inet_addr(SERVER); srv_addr.sin_port=srv_info->s_port;

/* Connect to FTP server at address SERVER */

if (connect(cli_sock,(LPSOCKADDR)&srv_addr,sizeof(srv_addr))==SOCKET_ERROR){

sprintf(buf,"Windows Sockets error %d: Couldn’t connect socket.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app();}/* Client-server network interaction takes place here */

$OWKRXJK�WKH�DERYH�IUDJPHQW�PDNHV�XVH�RI�WKH�ELQG���$3,��LW�ZRXOG�EH�MXVW�DV�HIIHFWLYH�WR�VNLS�RYHU�WKLV�FDOO�DV�WKHUH�DUH�QR�VSHFLILF�ORFDO�SRUW�,'�UHTXLUHPHQWV�IRU�WKLV�FOLHQW��7KH�RQO\�DGYDQWDJH�WKDW�ELQG���RIIHUV�LV�WKH�DFFHVVLELOLW\�RI�WKH�SRUW�ZKLFK�WKH�V\VWHP�FKRVH�YLD�WKH��VLQBSRUW�PHPEHU�RI�WKH�FOLBDGGU�VWUXFWXUH�ZKLFK�ZLOO�EH�VHW�XSRQ�VXFFHVV�RI�WKH�ELQG���FDOO�

)RU�FRQQHFWLRQOHVV��RU��GDWDJUDP��VRFNHWV��:LQGRZV�6RFNHWV�XVDJH�LV�D�OLWWOH�VLPSOHU��6LQFH�WKH�FRPPXQLFDWLRQ�LQ�GDWDJUDP�VRFNHWV�LV�FRQQHFWLRQOHVV��LW�LV�QRW�QHFHVVDU\�WR�XVH�WKH�$3,V�QHFHVVDU\�IRU�FUHDWLQJ�D�FRQQHFWLRQ��QDPHO\��FRQQHFW����OLVWHQ����DQG�DFFHSW����7KH�IORZ�RI�:LQGRZV�6RFNHWV�$3,V�WKDW�D�W\SLFDO�FRQQHFWLRQOHVV�FOLHQW�VHUYHU�SDLU�ZLOO�JHQHUDOO\�WUDYHUVH�IROORZV�

Page 22: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 22 of 50

file:C:\TEMP\01becc72.htm 9/3/99

6HWWLQJ�XS�D�VHUYHU�VLGH�GDWDJUDP�EDVHG�DSSOLFDWLRQ

Page 23: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 23 of 50

file:C:\TEMP\01becc72.htm 9/3/99

6HWWLQJ�XS�D�FOLHQW�VLGH�VWUHDP�EDVHG�DSSOLFDWLRQ

$V�SLFWXUHG�DERYH��D�FOLHQW�PD\�FKRRVH�WR�FRQQHFW���WKH�GDWDJUDP�VRFNHW�IRU�FRQYHQLHQFH�RI�PXOWLSOH�VHQGV�WR�WKH�UHPRWH�HQGSRLQW��&RQQHFWLQJ�D�GDWDJUDP�VRFNHW�ZLOO�FDXVH�DOO�VHQGV�WR�JR�WR�WKH�FRQQHFWHG�DGGUHVV��DQG�DQ\�GDWDJUDPV�UHFHLYHG�IURP�D�UHPRWH�DGGUHVV�GLIIHUHQW�WKDQ�WKH�FRQQHFWHG�DGGUHVV�DUH�GLVFDUGHG�E\�WKH�V\VWHP��*HQHUDOO\��FRQQHFWLRQOHVV�FOLHQWV�XVH�WKH�VHQGWR���$3,�WR�WUDQVPLW�DSSOLFDWLRQ�GDWD��7KH�VHQGWR���FDOO�UHTXLUHV�WKDW�WKH�GHVWLQDWLRQV�HQGSRLQW�DGGUHVV�EH�VSHFLILHG�ZLWK�HYHU\�FDOO�WR�WKH�$3,��%\�FRQQHFWLQJ�D�GDWDJUDP�VRFNHW��D�FOLHQW�VHQGLQJ�D�ODUJH�DPRXQW�RI�GDWD�WR�WKH�VDPH�GHVWLQDWLRQ�FDQ�VLPSO\�XVH�WKH�VHQG���$3,�WR�WUDQVPLW��ZLWKRXW�KDYLQJ�WR�VSHFLI\�D�UHPRWH�HQGSRLQW�ZLWK�HYHU\�FDOO��DQG�WKH�FOLHQW�QHHG�QRW�FRQFHUQ�LWVHOI�ZLWK�WKH�SRVVLELOLW\�RI�UHFHLYLQJ�XQZDQWHG�GDWD�IURP�RWKHU�KRVWV��'HSHQGLQJ�RQ�WKH�W\SH�RI�DSSOLFDWLRQ�\RX�DUH�GHYHORSLQJ��DQG�WKH�:LQGRZV�6RFNHWV�LPSOHPHQWDWLRQ�EHORZ�\RXU�DSSOLFDWLRQ��FRQQHFWLQJ�GDWDJUDP�VRFNHWV�PD\�LPSURYH�SHUIRUPDQFH�RI�\RXU�DSSOLFDWLRQ�

Page 24: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 24 of 50

file:C:\TEMP\01becc72.htm 9/3/99

6RPH�VDPSOH�FRGH�LOOXVWUDWHV�KRZ�WKH�7)73�SURWRFRO��D�FRQQHFWLRQOHVV�SURWRFRO�IRU�ILOH�WUDQVIHU��FOLHQW�DQG�VHUYHU�PLJKW�EH�LPSOHPHQWHG�RYHU�:LQGRZV�6RFNHWV�

6HUYHU�VLGH��FRQQHFWLRQOHVV�

SOCKET srv_sock;struct sockaddr_in srv_addr;

.

./* Create server socket for connectionless service */

srv_sock=socket(PF_INET,SOCK_DGRAM,0);

if (srv_sock==INVALID_SOCKET){

sprintf(buf,"Windows Sockets error %d: Couldn’t create socket.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app();}

/* Resolve TFTP service port to listen on */

srv_info=getservbyname("tftpd","udp");

if (srv_info== NULL) {

sprintf(buf,"Windows Sockets error %d: Couldn’t resolve TFTPd service port.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app();}

srv_addr.sin_family = AF_INET;srv_addr.sin_addr.s_addr = INADDR_ANY; /* Allow the server to accept connections /* over any intesrv_addr.sin_port=srv_info->s_port;

/* Bind remote server’s address and port */

if (bind(srv_sock,(LPSOCKADDR)&srv_addr,sizeof(srv_addr))==SOCKET_ERROR){ sprintf(buf,"Windows Sockets error %d: Couldn’t bind socket.", WSAGetLastError());

Page 25: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 25 of 50

file:C:\TEMP\01becc72.htm 9/3/99

MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app();}

/* Client-server network interaction takes place here */

&OLHQW�VLGH��FRQQHFWLRQOHVV�

/* Static IP address for remote server for example. In reality, this would be specified as a hostname or IP address by the user */

#define SERVER "131.107.1.121"

struct sockaddr_in srv_addr,cli_addr;LPSERVENT srv_info;LPHOSTENT host_info;SOCKET cli_sock;

.

./* Create client-side datagram socket */

cli_sock=socket(PF_INET,SOCK_DGRAM);if (cli_sock==INVALID_SOCKET){ sprintf(buf,"Windows Sockets error %d: Couldn’t create socket.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app();}

cli_addr.sin_family=AF_INET;cli_addr.sin_addr.s_addr=INADDR_ANY; cli_addr.sin_port=0; /* no specific local port req’d */

/* Bind local socket */if (bind(cli_sock,(LPSOCKADDR)&cli_addr,sizeof(cli_addr))==SOCKET_ERROR){ sprintf(buf,"Windows Sockets error %d: Couldn’t bind socket.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app();}

Page 26: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 26 of 50

file:C:\TEMP\01becc72.htm 9/3/99

/* Resolve port information for TFTP service */

srv_info=getservbyname("tftp","udp");if (srv_info== NULL) {

sprintf(buf,"Windows Sockets error %d: Couldn’t resolve TFTP service port.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app();}

srv_addr.sin_family = AF_INET;srv_addr.sin_addr.s_addr = inet_addr(SERVER);srv_addr.sin_port=srv_info->s_port;

if (connect(cli_sock,(LPSOCKADDR)&srv_addr,sizeof(srv_addr))==SOCKET_ERROR){ sprintf(buf,"Windows Sockets error %d: Couldn’t connect socket.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app();}/* Client-server network interaction takes place here */

6LQFH�D�FRQQHFWLRQOHVV�FOLHQW��VXFK�DV�7)73��ZLOO�XQGRXEWHGO\�EH�GRLQJ�VXFFHVVLYH�WUDQVPLVVLRQV�ZLWK�WKH�VHUYHU��HVSHFLDOO\�GXULQJ�ORQJ�WUDQVIHUV���ZH�KDYH�FKRVHQ�WR�FRQQHFW�WKH�VRFNHW��DOORZLQJ�WKH�XVH�RI�WKH�VHQG���DQG�UHFY���$3,V�UDWKHU�WKDQ�VHQGWR���DQG�UHFYIURP����7KH�XVH�RI�FRQQHFW���ZLWK�GDWDJUDP�VRFNHWV�LV�SXUHO\�RSWLRQDO�

6HQGLQJ�DQG�5HFHLYLQJ�'DWD��VWUHDP�VRFNHWV�

2QFH�DQ�DSSOLFDWLRQ�VXFFHVVIXOO\�HVWDEOLVKHV�D�VRFNHW�FRQQHFWLRQ��LW�LV�UHDG\�WR�VWDUW�WUDQVIHUULQJ�GDWD�RYHU�WKH�FRQQHFWLRQ��:LWK�VWUHDP��7&3��VRFNHWV��GDWD�WUDQVIHU�LV�VDLG�WR�EH��UHOLDEOH���PHDQLQJ�WKDW�WKH�DSSOLFDWLRQ�PD\�DVVXPH�WKDW�WKH�XQGHUO\LQJ�WUDQVSRUW�ZLOO�HQVXUH�WKDW�WKH�GDWD�JHWV�WR�WKH�UHPRWH�KRVW�ZLWKRXW�GXSOLFDWLRQ�RU�FRUUXSWLRQ��:KHQ�D�FRQQHFWLRQ�LV�HVWDEOLVKHG�RQ�D�VWUHDP�VRFNHW��D�WKH�7&3�WUDQVSRUW�FUHDWHV�D��YLUWXDO�FLUFXLW��EHWZHHQ�WKH�WZR�PDFKLQHV��7KLV�FLUFXLW�UHPDLQV�RSHQ�XQWLO�ERWK�DSSOLFDWLRQV�GHFLGH�WKDW�WKH\�DUH�GRQH�VHQGLQJ�GDWD�RQ�WKH�FLUFXLW��W\SLFDOO\�D��JUDFHIXO��FORVH���RU�XQWLO�D�QHWZRUN�HUURU�RFFXUV�ZKLFK�FDXVHV�WKH�FLUFXLW�WR�EH�WHUPLQDWHG�DEQRUPDOO\��

$Q�DSSOLFDWLRQ�VHQGV�GDWD�XVLQJ�WKH�VHQG���$3,��7KLV�$3,�WDNHV�D�VRFNHW�GHVFULSWRU��D�SRLQWHU�WR�D�EXIIHU�WR�VHQG��WKH�OHQJWK�RI�WKH�EXIIHU��DQG�DQ�LQWHJHU�ZKLFK�VSHFLILHV�IODJV�ZKLFK�FDQ�PRGLI\�WKH�EHKDYLRU�RI�VHQG����7R�UHFHLYH�GDWD��DQ�DSSOLFDWLRQ�XVHV�WKH�UHFY���$3,��ZKLFK�WDNHV�D�SRLQWHU�WR�D�EXIIHU�WR�ILOO�ZLWK�GDWD��WKH�OHQJWK�RI�WKH�VSHFLILHG�EXIIHU��DQG�D�IODJV�LQWHJHU��UHFY���UHWXUQV�WKH�QXPEHU�RI�E\WHV�DFWXDOO\�UHFHLYHG��DQG�VHQG���UHWXUQV�WKH�QXPEHU�RI�E\WHV�DFWXDOO\�VHQW��1RWH�WKDW�DSSOLFDWLRQV�VKRXOG�DOZD\V�FKHFN�WKH�UHWXUQ�FRGHV�RI�VHQG��DQG�UHFY���IRU�WKH�QXPEHU�RI�E\WHV�DFWXDOO\�WUDQVIHUUHG��VLQFH�LW�PD\�EH�GLIIHUHQW�IURP�WKH�QXPEHU�UHTXHVWHG��%HFDXVH�RI�WKH�VWUHDP�RULHQWHG�QDWXUH�RI�7&3�VRFNHWV��WKHUH�LVQW�QHFHVVDULO\�D�RQH�WR�RQH�FRUUHVSRQGHQFH�EHWZHHQ�VHQG���DQG�UHFY���FDOOV��)RU�H[DPSOH��D�FOLHQW�DSSOLFDWLRQ�PD\�SHUIRUP�WHQ�FDOOV�WR�VHQG����HDFK�IRU�����E\WHV��7KH�V\VWHP�PD\�FRPELQH�RU��FRDOHVFH��WKHVH�VHQGV�LQWR�D�VLQJOH�QHWZRUN�SDFNHW��VR�WKDW�LI�WKH�VHUYHU�

Page 27: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 27 of 50

file:C:\TEMP\01becc72.htm 9/3/99

DSSOLFDWLRQ�GLG�D�UHFY���ZLWK�D�EXIIHU�RI������E\WHV��LW�ZRXOG�JHW�DOO�WKH�GDWD�DW�RQFH��

7KHUHIRUH��DQ�DSSOLFDWLRQ�PXVW�QRW�PDNH�DQ\�DVVXPSWLRQV�DERXW�KRZ�GDWD�ZLOO�DUULYH��$�VHUYHU�ZKLFK�H[SHFWV�WR�UHFHLYH������E\WHV�VKRXOG�FDOO�UHFY��LQ�D�ORRS�XQWLO�LW�KDV�UHFHLYHG�DOO�RI�WKH�GDWD�

SOCKET s;int bytes_received;char buffer[1000];char *buffer_ptr;int buffer_length;

.

.buffer_ptr = buffer;buffer_length = sizeof(buffer);

/* Receive all outstanding data on socket s */

do { bytes_received = recv(s, buffer_ptr, buffer_length, 0); if (bytes_received == SOCKET_ERROR) { sprintf(buf,"Windows Sockets error %d: Error while receiving data.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app(); } buffer_ptr += bytes_received; buffer_length -= bytes_received;} while (buffer_length > 0);

/LNHZLVH��DQ�DSSOLFDWLRQ�ZKLFK�ZDQWV�WR�VHQG������E\WHV�VKRXOG�VHQG���LQ�D�ORRS�XQWLO�DOO�RI�WKH�GDWD�KDV�EHHQ�VHQW�

SOCKET s;int bytes_sent;char buffer[1000];char *buffer_ptr;int buffer_length;

buffer_ptr = buffer;buffer_length = sizeof(buffer);

/* Enter send loop until all data in buffer is sent */

Page 28: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 28 of 50

file:C:\TEMP\01becc72.htm 9/3/99

do { bytes_sent = send(s, buffer_ptr, buffer_length, 0); if (bytes_sent == SOCKET_ERROR) { sprintf(buf,"Windows Sockets error %d: Error while sending data.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_app(); } buffer_ptr += bytes_sent; buffer_length -= bytes_sent;} while (buffer_length > 0);

6HQGLQJ�DQG�5HFHLYLQJ�'DWD��GDWDJUDP�VRFNHWV�

'DWD�WUDQVPLVVLRQ�RQ�GDWDJUDP�VRFNHWV�LV�VLJQLILFDQWO\�GLIIHUHQW�IURP�VWUHDP�VRFNHWV��7KH�PRVW�LPSRUWDQW�GLIIHUHQFH�LV�WKDW�WUDQVPLVVLRQ�LV�QRW�UHOLDEOH�RQ�GDWDJUDP�VRFNHWV��7KLV�PHDQV�WKDW�LI�DQ�DSSOLFDWLRQ�DWWHPSWV�WR�VHQG�GDWD�WR�DQRWKHU�DSSOLFDWLRQ��WKH�V\VWHP�GRHV�QRWKLQJ�WR�JXDUDQWHH�WKDW�WKH�GDWD�ZLOO�DFWXDOO\�EH�GHOLYHUHG�WR�WKH�UHPRWH�DSSOLFDWLRQ��5HOLDELOLW\�ZLOO�WHQG�WR�EH�JRRG�RQ�/$1V��ORFDO�DUHD�QHWZRUNV��VXFK�DV�D�QHWZRUN�FRQQHFWLQJ�VHYHUDO�FRPSXWHUV�ZLWKLQ�D�VLQJOH�EXLOGLQJ���EXW�FDQ�EH�YHU\�SRRU�RQ�:$1V��ZLGH�DUHD�QHWZRUNV��VXFK�DV�WKH�,QWHUQHW�ZKLFK�FRQQHFWV�KXQGUHGV�RI�WKRXVDQGV�RI�FRPSXWHUV�ZRUOGZLGH���

7KH�QH[W�LPSRUWDQW�GLIIHUHQFH�LQ�GDWDJUDP�VRFNHWV�LV�WKDW�WKH\�DUH�FRQQHFWLRQOHVV��7KLV�PHDQV�WKDW�WKHUH�LV�QR�GHIDXOW�UHPRWH�DGGUHVV�DVVLJQHG�WR�WKHP��)RU�WKLV�UHDVRQ��DQ�DSSOLFDWLRQ�ZKLFK�ZDQWV�WR�VHQG�GDWD�PXVW�VSHFLI\�WKH�DGGUHVV�WR�ZKLFK�WKH�GDWD�LV�GHVWLQHG�ZLWK�WKH�VHQGWR���$3,��,Q�DGGLWLRQ��DQ�DSSOLFDWLRQ�W\SLFDOO\�ZDQWV�WR�NQRZ�ZKHUH�GDWD�FDPH�IURP��VR�LW�UHFHLYHV�GDWD�ZLWK�WKH�UHFYIURP���$3,��ZKLFK�UHWXUQV�WKH�DGGUHVV�RI�WKH�VHQGHU�RI�WKH�GDWD�

7KH�ILQDO�VLJQLILFDQW�GLIIHUHQFH�LQ�GDWD�WUDQVPLVVLRQ�IRU�GDWDJUDP�VRFNHWV�LV�WKDW�LW�LV��PHVVDJH�RULHQWHG���7KLV�PHDQV�WKDW�WKHUH�LV�D�RQH�WR�RQH�FRUUHVSRQGHQFH�EHWZHHQ�VHQGWR���DQG�UHFYIURP���FDOOV��DQG�WKDW�WKH�V\VWHP�GRHV�QRW�FRDOHVFH�GDWD�ZKHQ�VHQGLQJ�LW��)RU�H[DPSOH��LI�DQ�DSSOLFDWLRQ�PDNHV����FDOOV�WR�VHQGWR���ZLWK�D�EXIIHU�RI�WZR�E\WHV��WKH�UHPRWH�DSSOLFDWLRQ�ZLOO�QHHG�WR�SHUIRUP����FDOOV�WR�UHFYIURP���ZLWK�D�EXIIHU�RI�DW�OHDVW�WZR�E\WHV�WR�UHFHLYH�DOO�WKH�GDWD�

%HORZ�LV�D�FRGH�IUDJPHQW�IURP�D�GDWDJUDP�VRFNHWV�DSSOLFDWLRQ�ZKLFK�HFKRV�GDWDJUDPV�EDFN�WR�WKH�VHQGHU�

SOCKET s;SOCKADDR_IN remoteAddr;int remoteAddrLength = sizeof(remoteAddr);BYTE buffer[1024];int bytesReceived;

for ( ; ; ) { /* Receive a datagram on socket s */

Page 29: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 29 of 50

file:C:\TEMP\01becc72.htm 9/3/99

bytesReceived = recvfrom( s, buffer, sizeof(buffer),0, (PSOCKADDR)&remoteAddr, &remoteAddrLength ); /* Echo back to the server as long as bytes were received */

if ( bytesReceived != SOCKET_ERROR || sendto( s, buffer, bytesRecieved, 0, (PSOCKADDR)&remoteAddr, remoteAddrLength ) == SOCKET_ERROR ){ sprintf(buf,"Windows Sockets error %d: Error while sending data.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_appl(); }}

$V�PHQWLRQHG�HDUOLHU��LW�LV�SRVVLEOH�WR�FRQQHFW���D�GDWDJUDP�VRFNHW��2QFH�D�GDWDJUDP�VRFNHW�LV�FRQQHFWHG��DOO�GDWD�LV�VHQW�DQG�UHFHLYHG�IURP�WKH�UHPRWH�DGGUHVV�WR�ZKLFK�WKH�GDWDJUDP�LV�FRQQHFWHG��VR�LW�LV�SRVVLEOH�WR�XVH�WKH�VHQG���DQG�UHFY���$3,V�RQ�FRQQHFWHG�GDWDJUDP�VRFNHWV�

7HUPLQDWLQJ�D�&RQQHFWLRQ

$Q�DSSOLFDWLRQ�KDV�VHYHUDO�RSWLRQV�IRU�WHUPLQDWLQJ�D�FRQQHFWLRQ��7KH�VLPSOHVW�LV�WR�FDOO�WKH�FORVHVRFNHW���$3,��ZKLFK�WDNHV�RQO\�D�VRFNHW�GHVFULSWRU�DV�LQSXW��7KLV�$3,�IUHHV�UHVRXUFHV�DVVRFLDWHG�ZLWK�D�VRFNHW�DQG�LQLWLDWHV�WKH�JUDFHIXO�FORVH�VHTXHQFH��7KLV�VHTXHQFH�LV�FRPSOHWHG�ZKHQ�WKH�UHPRWH�DSSOLFDWLRQ�DOVR�FORVHV�LWV�VRFNHW��

,I�DQ�DSSOLFDWLRQ�GHWHUPLQHV�WKDW�LW�LV�GRQH�VHQGLQJ�GDWD��EXW�PD\�ZDQW�WR�UHFHLYH�PRUH�GDWD��LW�FDQ�FDOO�WKH�VKXWGRZQ���$3,��7KLV�$3,�QRWLILHV�WKH�UHPRWH�HQG�WKDW�WKH�ORFDO�DSSOLFDWLRQ�ZRQW�EH�VHQGLQJ�DQ\�PRUH�GDWD��EXW�PD\�FRQWLQXH�WR�UHFHLYH�GDWD�

/DVWO\��DQ�DSSOLFDWLRQ�PD\�FDXVH�DQ��DERUWLYH��RU��KDUG��FORVH�RQ�D�FRQQHFWLRQ�ZLWK�WKH�62B/,1*(5�VRFNHW�RSWLRQ�LQ�FRQMXQFWLRQ�ZLWK�FORVHVRFNHW����6HWWLQJ�WKH�OLQJHU�WLPHRXW�WR���FDXVHV�WKH�FLUFXLW�WR�EH�WHUPLQDWHG�LPPHGLDWHO\��UHJDUGOHVV�RI�ZKHWKHU�WKH�UHPRWH�HQG�KDV�FRPSOHWHG�LWV�GDWD�WUDQVIHU��DQG�DQ\�XQUHFHLYHG�RU�XQVHQW�GDWD�LV�GURSSHG��7KHUHIRUH��WKLV�RSWLRQ�VKRXOG�EH�XVHG�ZLWK�FDXWLRQ�DQG�RQO\�LI�WKH�UHVXOWV�DUH�XQGHUVWRRG�DQG�LQWHQGHG��7KH�IROORZLQJ�FRGH�IUDJPHQW�GHPRQVWUDWHV�KRZ�WR�SHUIRUP�D�KDUG�FORVH�RQ�D�FRQQHFWLRQ�

LINGER lingerInfo;INT err;SOCKET s;

/* First set the linger timeout on the socket to 0. This will *//* cause the connection to be reset. */

lingerInfo.l_onoff = 1;

Page 30: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 30 of 50

file:C:\TEMP\01becc72.htm 9/3/99

lingerInfo.l_linger = 0;

setsockopt( s, SOL_SOCKET, SO_LINGER, (char *)&lingerInfo,sizeof(lingerInfo) );closesocket(s);

+RZ�FDQ�DQ�DSSOLFDWLRQ�NQRZ�WKDW�WKH�UHPRWH�HQG�KDV�WHUPLQDWHG�WKH�FRQQHFWLRQ"�7KH�DQVZHU�GHSHQGV�RQ�ZKHWKHU�WKH�UHPRWH�HQG�WHUPLQDWHG�WKH�FRQQHFWLRQ�JUDFHIXOO\�RU�DERUWLYHO\��,I�WKH�WHUPLQDWLRQ�ZDV�DERUWLYH��WKHQ�VHQG���DQG�UHFY���FDOOV�ZLOO�IDLO�ZLWK�WKH�HUURU�:6$(&2115(6(7��7KLV�LQGLFDWHV�WR�DQ�DSSOLFDWLRQ�WKDW�GDWD�PD\�KDYH�EHHQ�ORVW��DQG�WKH�HUURU�FRQGLWLRQ�VKRXOG�EH�UHSRUWHG�WR�WKH�XVHU�

,I�WKH�WHUPLQDWLRQ�ZDV�JUDFHIXO��WKHQ�DQ\�UHFY���FDOOV�PDGH�DIWHU�DOO�GDWD�KDV�EHHQ�UHFHLYHG�ZLOO�UHWXUQ�WKH�YDOXH�]HUR�DV�WKH�QXPEHU�RI�E\WHV�UHFHLYHG��7KLV�LQGLFDWHV�WKDW�WKH�UHPRWH�HQG�KDV�JUDFHIXOO\�WHUPLQDWHG�LWV�HQG�RI�WKH�FRQQHFWLRQ�DQG�WKH�ORFDO�HQG�PD\�FORVH�WKH�VRFNHW�ZLWKRXW�IHDU�RI�GDWD�ORVV��7KH�IROORZLQJ�FRGH�IUDJPHQW�LOOXVWUDWHV�KRZ�DQ�DSSOLFDWLRQ�LQLWLDWHV�D�JUDFHIXO�FORVH�DQG�WKHQ�ZDLWV�IRU�WKH�UHPRWH�HQG�WR�FORVH�JUDFHIXOO\�EHIRUH�FORVLQJ�WKH�VRFNHW�

SOCKET s;INT err;BYTE buffer[1024];

err = shutdown( s , 1 );if ( err == SOCKET_ERROR ) { sprintf(buf,"Windows Sockets error %d: Error during shutdown.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_appl(); }

/* Receive the rest of the pending data */

while ( (err = recv( s, buffer, sizeof(buffer), 0 ) != 0 ) {

if ( err == SOCKET_ERROR ) { sprintf(buf,"Windows Sockets error %d: Error while receiving data.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_appl(); } . . /* do something with the data we received. */ . .

}

Page 31: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 31 of 50

file:C:\TEMP\01becc72.htm 9/3/99

/* The other side has also terminated. we can safely close now */

closesocket( s );

1RWH�WKDW�LQ�WKLV�H[DPSOH�WKH�DSSOLFDWLRQ�NHHSV�FDOOLQJ�UHFY���XQWLO�LW�UHWXUQV�]HUR�E\WHV�UHFHLYHG��,I�DQ�DSSOLFDWLRQ�FORVHV�D�VRFNHW�DQG�WKHUH�LV�GDWD�DYDLODEOH�WR�EH�UHFHLYHG��RU�GDWD�ODWHU�DUULYHV��WKHQ�WKH�V\VWHP�ZLOO�DERUW�WKH�FRQQHFWLRQ�DQG�WKURZ�RXW�WKH�GDWD��VLQFH�WKHUH�LV�QRERG\�WR�JLYH�WKH�GDWD�WR��:HOO�EHKDYHG�DSSOLFDWLRQV�VKRXOG�HQVXUH�WKDW�WKH\�UHFHLYH�DOO�GDWD�EHIRUH�FORVLQJ�D�VRFNHW�

$V\QFKURQRXV�:LQGRZV�6RFNHWV�&DOOV

%\�GHIDXOW��DQ�DSSOLFDWLRQV�VRFNHW�FDOOV�ZLOO�EORFN�XQWLO�WKH�UHTXHVWHG�RSHUDWLRQ�FDQ�EH�FRPSOHWHG��)RU�H[DPSOH��LI�DQ�DSSOLFDWLRQ�ZLVKHV�WR�UHFHLYH�GDWD�IURP�DQRWKHU�DSSOLFDWLRQ��LWV�FDOO�WR�WKH�UHFY���$3,�ZLOO�QRW�FRPSOHWH�XQWLO�WKH�RWKHU�DSSOLFDWLRQ�KDV�VHQW�GDWD�ZKLFK�FDQ�EH�UHWXUQHG�WR�WKH�FDOOLQJ�DSSOLFDWLRQ��

7KLV�PRGHO�LV�VXIILFLHQW�IRU�VLPSOH�DSSOLFDWLRQV��EXW�PRUH�VRSKLVWLFDWHG�DSSOLFDWLRQV�PD\�QRW�ZLVK�WR�EORFN�IRU�DQ�DUELWUDULO\�ORQJ�SHULRG�IRU�D�QHWZRUN�HYHQW��,Q�IDFW��LQ�:LQGRZV������EORFNLQJ�RSHUDWLRQV�DUH�FRQVLGHUHG�SRRU�SURJUDPPLQJ�SUDFWLFH�EHFDXVH�DSSOLFDWLRQV�DUH�H[SHFWHG�WR�FDOO�3HHN0HVVDJH���RU�*HW0HVVDJH���UHJXODUO\�LQ�RUGHU�WR�DOORZ�RWKHU�DSSOLFDWLRQV�WR�UXQ�DQG�WR�UHFHLYH�XVHU�LQSXW�

7R�VXSSRUW�WKH�VRSKLVWLFDWHG�DSSOLFDWLRQV�ZKLFK�ILW�EHWWHU�ZLWKLQ�WKH�:LQGRZV�SURJUDPPLQJ�SDUDGLJP��:LQGRZV�6RFNHWV�VXSSRUWV�WKH�FRQFHSW�RI��QRQEORFNLQJ�VRFNHWV���,I�DQ�DSSOLFDWLRQ�VHWV�D�VRFNHW�WR�QRQEORFNLQJ��WKHQ�DQ\�RSHUDWLRQ�ZKLFK�PD\�EORFN�IRU�DQ�H[WHQGHG�SHULRG�ZLOO�IDLO�ZLWK�WKH�HUURU�FRGH�:6$(:28/'%/2&.��7KLV�HUURU�LQGLFDWHV�WR�WKH�DSSOLFDWLRQ�WKDW�WKH�V\VWHP�ZDV�XQDEOH�WR�SHUIRUP�WKH�UHTXHVWHG�RSHUDWLRQ�LPPHGLDWHO\�

+RZ��WKHQ��GRHV�DQ�DSSOLFDWLRQ�NQRZ�ZKHQ�LW�FDQ�VXFFHVVIXOO\�SHUIRUP�FHUWDLQ�RSHUDWLRQV"�3ROOLQJ�ZRXOG�EH�RQH��SRRU��VROXWLRQ��7KH�RSWLPDO�PHFKDQLVP�LV�WR�XVH�WKH�DV\QFKURQRXV�QRWLILFDWLRQ�PHFKDQLVP�SURYLGHG�E\�WKH�:6$$V\QF6HOHFW���$3,��7KLV�URXWLQH�DOORZV�DQ�DSSOLFDWLRQ�WR�QRWLI\�D�:LQGRZV�6RFNHWV�LPSOHPHQWDWLRQ�RI�FHUWDLQ�HYHQWV�ZKLFK�DUH�RI�LQWHUHVW��DQG�WR�UHFHLYH�D�:LQGRZV�PHVVDJH�ZKHQ�WKH�HYHQWV�RFFXU��)RU�H[DPSOH��DQ�DSSOLFDWLRQ�PD\�LQGLFDWH�LQWHUHVW�LQ�GDWD�DUULYDO�ZLWK�WKH�)'B5($'�PHVVDJH��DQG�ZKHQ�GDWD�DUULYHV�WKH�:LQGRZV�6RFNHWV�'//�SRVWV�D�PHVVDJH�WR�WKH�DSSOLFDWLRQV�ZLQGRZ�KDQGOH��7KH�DSSOLFDWLRQ�UHFHLYHV�WKLV�PHVVDJH�LQ�D�*HW0HVVDJH���RU�3HHN0HVVDJH���FDOO�DQG�FDQ�WKHQ�SHUIRUP�WKH�FRUUHVSRQGLQJ�RSHUDWLRQ�

7KH�IROORZLQJ�FRGH�IUDJPHQW�GHPRQVWUDWHV�KRZ�DQ�DSSOLFDWLRQ�RSHQV�DQG�FRQQHFWV�D�7&3�VRFNHW�DQG�LQGLFDWHV�WKDW�LW�LV�LQWHUHVWHG�LQ�EHLQJ�QRWLILHG�ZKHQ�RQH�RI�WKUHH�QHWZRUN�HYHQWV�RFFXUV�

� GDWD�DUULYHV�RQ�WKH�VRFNHW

� LW�LV�SRVVLEOH�WR�VHQG�GDWD�RQ�WKH�VRFNHW

� WKH�UHPRWH�HQG�KDV�FORVHG�WKH�VRFNHW

Page 32: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 32 of 50

file:C:\TEMP\01becc72.htm 9/3/99

/* Static IP address for remote server for example. In reality, this would be specified as a hostname or IP address by the user */

#define SERVER "131.107.1.121"

#define SOCKET_MESSAGE WM_USER+1#define SERVER_PORT 4000

struct sockaddr_in srv_addr;SOCKET cli_sock;

.

.

./* Create client-side socket */

cli_sock=socket(PF_INET,SOCK_STREAM,0);

if (cli_sock==INVALID_SOCKET){ sprintf(buf, "Windows Sockets error %d: couldn’t open socket.", WSAGetLastError()); MessageBox(hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_appl();}

srv_addr.sin_family = AF_INET;srv_addr.sin_addr.s_addr = inet_addr(SERVER);srv_addr.sin_port=SERVER_PORT;

/* Connect to server */

if (connect(cli_sock,(LPSOCKADDR)&srv_addr,sizeof(srv_addr))==SOCKET_ERROR){

sprintf(buf,"Windows Sockets error %d: Couldn’t connect socket.", WSAGetLastError()); MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_appl();}

/* Set up async select on FD_READ, FD_WRITE, and FD_CLOSE events */

err = WSAAsyncSelect(cli_sock, hWnd, SOCKET_MESSAGE, FD_READ|FD_WRITE|FD_CLOSE);if (err == SOCKET_ERROR) { sprintf(buf,"Windows Sockets error %d: WSAAsyncSelect failure.", WSAGetLastError());

Page 33: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 33 of 50

file:C:\TEMP\01becc72.htm 9/3/99

MessageBox (hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_appl();}

:KHQ�RQH�RI�WKH�VSHFLILHG�QHWZRUN�HYHQWV�RFFXUV��WKH�VSHFLILHG�ZLQGRZ�KDQGOH�K:QG�UHFHLYHV�D�PHVVDJH�FRQWDLQLQJ�D�Z0VJ�RI�62&.(7B0(66$*(��7KH�Z3DUDP�ILHOG�RI�WKH�PHVVDJH�ZLOO�KDYH�WKH�VRFNHW�KDQGOH��DQG�O3DUDP�FRQWDLQV�WZR�SLHFHV�RI�LQIRUPDWLRQ��WKH�ORZ�ZRUG�FRQWDLQV�WKH�HYHQW�WKDW�RFFXUUHG��)'B5($'��)'B:5,7(��RU�)'B&/26(��DQG�WKH�KLJK�ZRUG�FRQWDLQV�DQ�HUURU�FRGH��RU���LI�WKHUH�ZDV�QR�HUURU��&RGH�VLPLODU�WR�WKH�IROORZLQJ�IUDJPHQW��ZKLFK�ZRXOG�EHORQJ�LQ�DQ�DSSOLFDWLRQV�PDLQ�ZLQGRZ�SURFHGXUH��PD\�EH�XVHG�WR�LQWHUSUHW�D�PHVVDJH�IURP�:6$$V\QF6HOHFW���

long FAR PASCAL _export WndProc(HWND hWnd, UINT message, UINT wParam, LONG lParam){ INT err;

switch (message) {

case ...: /* handle Windows messages */ . . . case SOCKET_MESSAGE:

/* A network event has occurred on our socket. Determine which network event occurred. */

switch (WSAGETSELECTEVENT(lParam)) { case FD_READ: /* Data arrived. Receive it. */ err = recv(cli_sock, Buffer, BufferLength, 0); if (WSAGetLastError() == WSAEWOULDBLOCK) { /* We have already received the data. */ break; } if (err == SOCKET_ERROR) { sprintf(buf, "Windows Sockets error %d: receive error.", WSAGetLastError()); MessageBox(hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_appl(); } . . /* Do something useful with the data. */ . .

Page 34: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 34 of 50

file:C:\TEMP\01becc72.htm 9/3/99

break;

case FD_WRITE: /* We can send data. */

err = send(cli_sock, Buffer, BufferLength, 0); if (err == SOCKET_ERROR) { if (WSAGetLastError() == WSAEWOULDBLOCK) { /* Send buffers overflowed. */ break; } sprintf(buf, "Windows Sockets error %d: send failed.", SAGetLastError()); MessageBox(hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_appl(); } break;

case FD_CLOSE: /* The remote closed the socket. */

closesocket(cli_sock); break; }

break; }.

$Q�LPSRUWDQW�SDUW�RI�WKH�EHKDYLRU�RI�:6$$V\QF6HOHFW���LV�WKDW�DIWHU�WKH�:LQGRZV�6RFNHWV�'//�KDV�SRVWHG�D�PHVVDJH�IRU�D�SDUWLFXODU�QHWZRUN�HYHQW��WKH�'//�UHIUDLQV�IURP�SRVWLQJ�DQRWKHU�PHVVDJH�IRU�WKDW�HYHQW�XQWLO�WKH�DSSOLFDWLRQ�KDV�FDOOHG�WKH��UHHQDEOLQJ�IXQFWLRQ��IRU�WKDW�HYHQW��)RU�H[DPSOH��RQFH�DQ�)'B5($'�KDV�EHHQ�SRVWHG��QR�PRUH�)'B5($'�PHVVDJHV�ZLOO�EH�SRVWHG�XQWLO�WKH�DSSOLFDWLRQ�FDOOV�UHFY����7KLV�SUHYHQWV�DQ�DSSOLFDWLRQV�PHVVDJH�TXHXH�IURP�EHLQJ�RYHUIORZHG�ZLWK�PHVVDJHV�IRU�D�VLQJOH�QHWZRUN�HYHQW�

8VLQJ�:6$$V\QF6HOHFW���FDQ�VLPSOLI\�DQG�LPSURYH�RUJDQL]DWLRQ�LQ�:LQGRZV�DSSOLFDWLRQV�E\�DOORZLQJ�WKHP�WR�EH�IXOO\�HYHQW�GULYHQ��6XFK�DQ�DSSOLFDWLRQ�UHVSRQGV�WR�QHWZRUN�HYHQWV�LQ�PXFK�WKH�VDPH�ZD\�LW�UHVSRQGV�WR�XVHU�HYHQWV�VXFK�DV�D�PRXVH�FOLFN��,Q�DGGLWLRQ��DSSOLFDWLRQV�ZKLFK�PDNH�XVH�RI�:6$$V\QF6HOHFW���DUH�EHWWHU�EHKDYHG�:LQGRZV�DSSOLFDWLRQV�VLQFH�WKH\�PXVW�IUHTXHQWO\�FDOO�3HHN0HVVDH���RU�*HW0HVVDJH���LQ�RUGHU�WR�UHFHLYH�WKH�QHWZRUN�PHVVDJHV�

$V\QFKURQRXV�'DWDEDVH�5RXWLQHV

-XVW�DV�VLPSOH�QHWZRUN�RSHUDWLRQV�OLNH�UHFY���FDQ�EORFN�IRU�H[WHQGHG�SHULRGV�RI�WLPH��VR�FDQ�WKH�GDWDEDVH�URXWLQHV�OLNH�JHWKRVWE\QDPH����HVSHFLDOO\�LV�WKH\�JR�WKURXJK�'16�ZKLFK�FDQ�UHTXLUH�FRQVLGHUDEOH�WLPH�GXH�WR�WKH�QHWZRUN�DFWLYLW\�LQYROYHG��,Q�RUGHU�WR�DOORZ�ZHOO�EHKDYHG�

Page 35: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 35 of 50

file:C:\TEMP\01becc72.htm 9/3/99

:LQGRZV�$SSOLFDWLRQV�WR�XVH�WKH�GDWDEDVH�URXWLQHV��WKH�:LQGRZV�6RFNHWV�$3,�VXSSOLHV�DV\QFKURQRXV�YHUVLRQV�RI�WKH�GDWDEDVH�URXWLQHV��7KHLU�XVH�LV�VLPLODU�WR�WKH�V\QFKURQRXV�GDWDEDVH�URXWLQHV�ZLWK�WZR�LPSRUWDQW�H[FHSWLRQV�

� &RPSOHWLRQ�RI�WKH�RSHUDWLRQ�LV�LQGLFDWHG�YLD�D�:LQGRZV�PHVVDJH��DV�ZLWK�:6$$V\QF6HOHFW���

� 7KH�DSSOLFDWLRQ�LV�UHTXLUHG�WR�LQFOXGH�D�EXIIHU�ZKLFK�LV�ILOOHG�LQ�E\�WKH�:LQGRZV�6RFNHWV�'//�ZLWK�WKH�LQIRUPDWLRQ�UHTXHVWHG�E\�WKH�DSSOLFDWLRQ��7KLV�LV�LQ�FRQWUDVW�WR�WKH�V\QFKURQRXV�GDWDEDVH�URXWLQHV�ZKLFK�UHWXUQ�D�SRLQWHU�WR�VSDFH�RZQHG�E\�WKH�:LQGRZV�6RFNHWV�'//�

,Q�RUGHU�WR�PDNH�DQ�DV\QFKURQRXV�GDWDEDVH�FDOO��DQ�DSSOLFDWLRQ�SDVVHV�LQ�LQIRUPDWLRQ�DERXW�WKH�FDOO��D�ZLQGRZ�KDQGOH�WR�UHFHLYH�WKH�FRPSOHWLRQ�PHVVDJH��D�PHVVDJH�FRGH��DQG�D�EXIIHU�IRU�WKH�RXWSXW�LQIRUPDWLRQ��7KH�:LQGRZV�6RFNHWV�$3,�GHILQHV�D�FRQVWDQW��0$;*(7+2676758&7��ZKLFK�LV�WKH�PD[LPXP�VL]H�RI�D�KRVWHQW�VWUXFWXUH��$Q�DSSOLFDWLRQ�VKRXOG�XVH�D�EXIIHU�RI�WKLV�VL]H�WR�SDVV�WR�WKH�DV\QFKURQRXV�GDWDEDVH�URXWLQHV�LQ�RUGHU�WR�EH�JXDUDQWHHG�WKDW�DOO�WKH�RXWSXW�LQIRUPDWLRQ�ZLOO�ILW�LQ�LWV�EXIIHU��$�FDOO�WR�:6$$V\QF*HW+RVW%\1DPH���PD\�EH�DV�IROORZV�

#define GETHOST_MESSAGE WM_USER+2

BYTE HostBuffer[MAXGETHOSTSTUCT];HANDLE TaskHandle;

/* Resolve hostname "hostname" asynchronously */

TaskHandle = WSAAsyncGetHostByName(hWnd, GETHOST_MESSAGE, "hostname", HostBuffer, MAXGETHOSTST

if (TaskHandle == SOCKET_ERROR) {

sprintf(buf, "Windows Sockets error %d: Hostname couldn’t be resolved.", WSAGetLastError()); MessageBox(hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_appl();}

:6$$V\QF*HW+RVW%\1DPH���DQG�WKH�RWKHU�DV\QFKURQRXV�GDWDEDVH�URXWLQHV�UHWXUQ�D��WDVN�KDQGOH��ZKLFK�XQLTXHO\�UHIHUV�WR�WKH�RSHUDWLRQ�LQ�SURJUHVV��7KLV�WDVN�KDQGOH�DOORZV�DQ�DSSOLFDWLRQ�ZKLFK�PD\�KDYH�PXOWLSOH�RXWVWDQGLQJ�DV\QFKURQRXV�GDWDEDVH�URXWLQHV�WR�DVVRFLDWH�FRPSOHWLRQ�PHVVDJHV�ZLWK�WKH�UHTXHVW��VLQFH�WKH�WDVN�KDQGOH�LV�UHWXUQHG�LQ�WKH�FRPSOHWLRQ�PHVVDJH�DV�Z3DUDP�

7R�UHFHLYH�DQG�SURFHVV�WKH�FRPSOHWLRQ�PHVVDJH��DQ�DSSOLFDWLRQ�ZLOO�GR�WKH�IROORZLQJ�LQ�LWV�ZLQGRZ�SURFHGXUH�

long FAR PASCAL _export WndProc(HWND hWnd, UINT message, UINT wParam, LONG lParam){ INT err;

Page 36: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 36 of 50

file:C:\TEMP\01becc72.htm 9/3/99

switch (message) { case ...: /* handle Windows messages */ . . .

case GETHOST_MESSAGE:

/* An asynchronous database routine completed. */ if (WSAGETASYNCERROR(lParam) != 0) { sprintf(buf, "Windows Sockets error %d: Hostname couldn’t be resolved.", WSAGetLastError()); MessageBox(hWnd,buf,"Windows Sockets Error",MB_OK); shutdown_appl(); } . . /* HostBuffer now contains a host buffer, use info from it. */ . .}

:LQGRZV�6RFNHWV�RQ�:LQGRZV�17

$OWKRXJK�WKH�LQLWLDO�IRFXV�RI�:LQGRZV�6RFNHWV�ZDV�IRU�:LQGRZV��������ELW�DSSOLFDWLRQV��:LQGRZV�17�VXSSRUWV�:LQGRZV�6RFNHWV�DV�ZHOO��7R�UXQ�H[LVWLQJ����ELW�:LQGRZV�6RFNHWV�DSSOLFDWLRQV��:LQGRZV�17�VXSSOLHV�:,162&.�'//��,Q�DGGLWLRQ��:LQGRZV�17�RIIHUV����ELW�:LQGRZV�6RFNHWV�VXSSRUW�LQ�WKH�'//�FDOOHG�:62&.���'//��,Q�JHQHUDO��DOO�RI�WKH�:LQGRZV�6RFNHWV�URXWLQHV�LQ�WKH����ELW�'//�DUH�LGHQWLFDO�WR�WKHLU����ELW�FRXQWHUSDUWV��DOWKRXJK�WKHLU�SDUDPHWHUV�DUH�ZLGHQHG�WR����ELWV��

7KH�PRVW�VLJQLILFDQW�GLIIHUHQFH�LQ�SURJUDPPLQJ�:LQGRZV�6RFNHWV�DSSOLFDWLRQV�IRU�:LQGRZV�17�LV�WKDW�:LQGRZV�17�LV�D�IXOO\�SUHHPSWLYH��PXOWLWKUHDGHG�RSHUDWLQJ�V\VWHP��7KHUHIRUH��LI�DQ�DSSOLFDWLRQ�EORFNV�RQ�D�:LQGRZV�6RFNHWV�FDOO��WKH�UHVW�RI�WKH�V\VWHP�LV�QRW�QHJDWLYHO\�LPSDFWHG��,Q�DGGLWLRQ��LW�LV�IHDVLEOH�WR�ZULWH�D�PXOWLWKUHDGHG�DSSOLFDWLRQ�ZKLFK�XVHV�RQH�WKUHDG�WR�SURFHVV�XVHU�LQSXW�DQG�DQRWKHU�WR�EORFN�RQ�VRFNHWV�FDOOV��6XFK�DQ�DSSOLFDWLRQ�FRXOG�XVH�WKH�EORFNLQJ�VRFNHWV�FDOOV�DQG�VWLOO�EH�UHVSRQVLYH�WR�XVHU�LQSXW�

7KH�DV\QFKURQRXV�:LQGRZV�6RFNHWV�FDOOV�DUH�VWLOO�DGYDQWDJHRXV�LQ�:LQGRZV�17��7KH�PRVW�VLJQLILFDQW�DGYDQWDJH�LV�WKDW�WKH\�DOORZ�DQ�DSSOLFDWLRQ�WR�EH�IXOO\�HYHQW�GULYHQ��ILWWLQJ�EHWWHU�ZLWKLQ�WKH�:LQGRZV�SURJUDPPLQJ�SDUDGLJP��,Q�DGGLWLRQ�����ELW�YHUVLRQV�RI�:LQGRZV�6RFNHWV�ZLOO�VRRQ�EH�DYDLODEOH�IRU�:LQ��V���$Q�DSSOLFDWLRQ�ZULWWHQ�WR�XVH�WKH�DV\QFKURQRXV�URXWLQHV�FDQ�EH�HDVLO\�SRUWHG�WR�:LQ��V�ZLWKRXW�WKH�QHJDWLYH�V\VWHP�LPSDFWV�RI�EORFNLQJ�FDOOV�

7UDQVSRUW�,QGHSHQGHQFH

Page 37: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 37 of 50

file:C:\TEMP\01becc72.htm 9/3/99

:HYH�IRFXVHG�RQ�7&3�,3�IRU�PRVW�RI�WKLV�DUWLFOH��EXW�ZH�SURPLVHG�WR�GHVFULEH�KRZ�DQ�DSSOLFDWLRQ�FDQ�XVH�:LQGRZV�6RFNHWV�RWKHU�WUDQVSRUW�SURWRFROV�LQ�:LQGRZV�17�DQG�&KLFDJR��:HOO�IRFXV�RQ�WKH�KLJKOLJKWV�DQG�WKH�NH\�IHDWXUHV�WKDW�GLIIHUHQWLDWH�GLIIHUHQW�WUDQVSRUW�SURWRFROV��DQG�RQ�WKH�PHFKDQLVPV�IRU�RSHQLQJ�VRFNHWV�IRU�XVH�ZLWK�GLIIHUHQW�WUDQVSRUW�SURWRFROV�

$OWKRXJK�WKHVH�DUH�QRW�H[SOLFLWO\�DGGUHVVHG�LQ�WKH�:LQGRZV�6RFNHWV�VSHFLILFDWLRQ��WKH�IDFW�WKDW�WKH�IXQGDPHQWDO�MRE�RI�D�WUDQVSRUW�SURWRFRO�LV�GDWD�WUDQVIHU��DORQJ�ZLWK�WKH�IDFW�WKDW�:LQGRZV�6RFNHWV�SURYLGHV�D�ULFK�LQWHUIDFH�IRU�ORZ�OHYHO�GDWD�WUDQVIHU�LQ�DSSOLFDWLRQV��PDNH�WKH�LQWHUIDFH�WR�:LQGRZV�6RFNHWV�RYHU�GLIIHUHQW�WUDQVSRUW�SURWRFROV�TXLWH�IHDVLEOH��,Q�IDFW��KDYLQJ�D�FRPPRQ��ZHOO�NQRZQ�$3,�LQWHUIDFH�DOORZV�DSSOLFDWLRQV�WR�EH�SRUWHG�TXLFNO\�EHWZHHQ�GLIIHUHQW�WUDQVSRUW�SURWRFROV��DQG�WKHUH�DUH�VHYHUDO�VXFFHVVIXO�H[DPSOHV�RI�WKLV�

%HFDXVH�RI�WKH�DUFKLWHFWXUH�RI�WKH�:LQGRZV�6RFNHWV�FRPSRQHQWV�RI�:LQGRZV�17�DQG�&KLFDJR��DOO�VXSSRUWHG�WUDQVSRUWV�DUH�DFFHVVHG�WKURXJK�WKH�VDPH�'//��:62&.���'//��,Q�IDFW��D�VLQJOH�DSSOLFDWLRQ�PD\�VLPXOWDQHRXVO\�XVH�VRFNHWV�RI�GLIIHUHQW�WUDQVSRUW�SURWRFROV��

$Q�DSSOLFDWLRQ�XVHV�WKH�SDUDPHWHUV�WR�WKH�VRFNHW���$3,�WR�VSHFLI\�WKH�SURWRFRO�LW�GHVLUHV��)RU�H[DPSOH��D�7&3�VRFNHW�LV�RSHQHG�ZLWK

s_tcp = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );

ZKLOH�DQ�63;�VRFNHW�LV�RSHQHG�ZLWK

s_spx = socket( AF_IPX, SOCK_SEQPACKET, NSPROTO_SPX );

$IWHU�RSHQLQJ�D�VRFNHW�IRU�D�VSHFLILF�SURWRFRO��DOO�DFWLRQV�SHUIRUPHG�RQ�WKH�VRFNHW�JR�WKURXJK�WKH�VSHFLILHG�SURWRFRO��,Q�WKH�DERYH�H[DPSOH��LI�WKH�DSSOLFDWLRQ�GLG�D�OLVWHQ���RQ�WKH�VBWFS�VRFNHW�EXW�QRW�RQ�WKH�VBVS[�VRFNHW��LW�ZRXOG�UHFHLYH�LQFRPLQJ�FRQQHFWV�WKURXJK�7&3�EXW�QRW�UHFHLYH�LQFRPLQJ�FRQQHFWV�WKURXJK�63;�

3URWRFRO�&KDUDFWHULVWLFV

$Q�DSSOLFDWLRQ�ZKLFK�XVHV�GLIIHUHQW�WUDQVSRUW�SURWRFROV�PXVW�EH�DZDUH�RI�WKH�GLIIHUHQW�FKDUDFWHULVWLFV�RI�WUDQVSRUW�SURWRFROV��:KLOH�DOO�WUDQVSRUW�SURWRFROV�VKDUH�WKH�VDPH�IXQGDPHQWDO�SXUSRVH�RI�ELGLUHFWLRQDO�GDWD�WUDQVIHU��PDQ\�GHWDLOV�RI�WKH�GDWD�WUDQVIHU�GLIIHU��)ROORZLQJ�LV�D�OLVW�RI�NH\�FKDUDFWHULVWLFV�RI�WUDQVSRUW�SURWRFROV�RI�ZKLFK�:LQGRZV�6RFNHWV�DSSOLFDWLRQV�QHHG�WR�EH�DZDUH�

$GGUHVVLQJ

7KH�PRVW�REYLRXV�GLIIHUHQFH�EHWZHHQ�GLIIHUHQW�WUDQVSRUW�SURWRFROV�LV�WKH�ZD\�LQ�ZKLFK�HDFK�XVHV�WUDQVSRUW�DGGUHVVHV��RU��VRFNDGGUV��LQ�:LQGRZV�6RFNHWV�WHUPV��9LUWXDOO\�DOO�WUDQVSRUW�SURWRFROV�H[SRVH�GLIIHUHQW�DGGUHVV�IRUPDWV�WR�DSSOLFDWLRQV��WKH�RQH�H[FHSWLRQ�EHLQJ�1HW%,26�SURWRFROV�ZKLFK�DOO�XVH�WKH�VDPH�DGGUHVV�IRUPDW�

$�QXPEHU�RI�:LQGRZV�6RFNHWV�$3,V�WDNH�VRFNDGGUV�DV�LQSXW�RU�RXWSXW�SDUDPHWHUV��LQFOXGLQJ�ELQG����FFHSW����VHQGWR����UHFYIURP����JHWVRFNQDPH����DQG�JHWSHHUQDPH����)RU�DOO�WKHVH�$3,V�D�VRFNDGGU�LV�UHDOO\�WZR�DUJXPHQWV��D�SRLQWHU�WR�WKH�VRFNDGGIU�VWUXFWXUH�LWVHOI�DQG�D�

Page 38: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 38 of 50

file:C:\TEMP\01becc72.htm 9/3/99

OHQJWK�LQWHJHU�ZKLFK�JLYHV�WKH�QXPEHU�RI�E\WHV�LQ�WKH�VRFNDGGU��)RU�PDQ\�WUDQVSRUW�SURWRFROV�WKH�OHQJWK�RI�D�VRFNDGGU�LV�DOZD\V�WKH�VDPH��EXW�VRFNDGGU�OHQJWKV�PD\�GLIIHU�EHWZHHQ�WUDQVSRUW�SURWRFROV��)RU�H[DPSOH��D�7&3�,3�VRFNDGGU�KDV����E\WHV�DQG�DQ�,3;�63;�VRFNDGGU�KDV����E\WHV�

7KH�IRUPDW�RI�VRFNDGGU�VWUXFWXUHV�XVHG�E\�D�WUDQVSRUW�SURWRFRO�LV�VSHFLILHG�LQ�WKH�DI�RU��DGGUHVV�IDPLO\��DUJXPHQW�WR�WKH�VRFNHW���$3,��$OO�7&3�,3�VRFNHWV��LQFOXGLQJ�ERWK�7&3�DQG�8'3�VRFNHWV��DUH�RSHQHG�ZLWK�WKH�$)B,1(7�DGGUHVV�IDPLO\��ZKLOH�,3;�63;�VRFNHWV�DUH�RSHQHG�ZLWK�$)B,3;��2WKHU�WUDQVSRUW�SURWRFROV�XVH�GLIIHUHQW�DGGUHVV�IDPLO\�YDOXHV�DV�GHILQHG�LQ�WKH�KHDGHU�ILOH�ZLQVRFN�K�

,W�LV�XS�WR�DQ�DSSOLFDWLRQ�WR�ILOO�LQ�D�VRFNDGGU�ZKHQ�ELQG��LQJ�WR�D�ORFDO�DGGUHVV�RU�FRQQHFW��LQJ�WR�D�UHPRWH�DGGUHVV��DQG�DOVR�WR�LQWHUSUHW�WKH�VRFNDGGUV�UHWXUQHG�IURP�WKH�DFFHSW����VHQGWR����UHFYIURP��JHWSHHUQDPH����DQG�JHWVRFNQDPH���$3,V�

&RQQHFWLRQ�2ULHQWHG�9V��&RQQHFWLRQOHVV

,Q�D�FRQQHFWLRQ�RULHQWHG�WUDQVSRUW��DSSOLFDWLRQV�DUH�UHTXLUHG�WR�HVWDEOLVK�D�YLUWXDO�FLUFXLW��VRPHWLPHV�DEEUHYLDWHG�WR�9LVXDO�&��EHIRUH�GDWD�WUDQVIHU�FDQ�WDNH�SODFH��9LUWXDO�FLUFXLW�HVWDEOLVKPHQW�LV�DV\PPHWULF��RQH�VLGH��WKH�VHUYHU��PXVW�PDNH�NQRZQ�WR�WKH�WUDQVSRUW�LWV�ZLOOLQJQHVV�WR�UHFHLYH�LQFRPLQJ�FRQQHFWLRQV�YLD�WKH�OLVWHQ���$3,��7KH�RWKHU�VLGH��WKH�FOLHQW��LQLWLDWHV�WKH�FLUFXLW�ZLWK�WKH�FRQQHFW���$3,��DQG�WKH�VHUYHU�FDQ�REWDLQ�D�VRFNHW�IRU�WKH�FLUFXLW�ZLWK�WKH�DFFHSW���$3,��2QFH�WKH�FLUFXLW�LV�HVWDEOLVKHG��GDWD�WUDQVIHU�WDNHV�SODFH�ZLWK�WKH�VHQG���DQG�UHFY���$3,V��7KHUH�LV�SURWRFRO�OHYHO�DFWLYLW\�ZKLFK�UHVXOWV�IURP�WKLV�FLUFXLW�HVWDEOLVKPHQW��DQG�PRUH�SURWRFRO�DFWLYLW\�WHDUV�GRZQ�WKH�FLUFXLW�ZKHQ�WKH�VRFNHWV�DUH�FORVHG��7&3�DQG�63;�DUH�H[DPSOHV�RI�FRQQHFWLRQ�RULHQWHG�WUDQVSRUW�SURWRFROV�

,Q�D�FRQQHFWLRQOHVV�WUDQVSRUW��WKHUH�LV�QR�FLUFXLW�HVWDEOLVKPHQW�UHTXLUHG�IRU�GDWD�WUDQVIHU��$Q�DSSOLFDWLRQ�RQO\�QHHGV�WR�RSHQ�DQG�ELQG�D�VRFNHW��DIWHU�ZKLFK�LW�PD\�XVH�WKH�VHQGWR���DQG�UHFYIURP���$3,V�WR�VHQG�DQG�UHFHLYH�GDWD��2I�FRXUVH��LQ�RUGHU�WR�VSHFLI\�WKH�UHPRWH�DGGUHVV�IRU�VHQGLQJ�GDWD�RU�WKH�DGGUHVV�IURP�ZKLFK�UHFHLYHG�GDWD�ZDV�VHQW��DQ�DSSOLFDWLRQ�PXVW�VSHFLI\�D�VRFNDGGU�WR�WKHVH�URXWLQHV��8'3�DQG�,3;�DUH�H[DPSOHV�RI�FRQQHFWLRQOHVV�WUDQVSRUW�SURWRFROV�

,W�LV�SRVVLEOH�WR�XVH�WKH�FRQQHFW���$3,�RQ�VRFNHWV�RSHQHG�IRU�FRQQHFWLRQOHVV�SURWRFROV��7KLV�LV�PHUHO\�DQ�DSSOLFDWLRQ�FRQYHQLHQFH��DOORZLQJ�WKH�DSSOLFDWLRQ�WR�XVH�WKH�VHQG���DQG�UHFY���$3,V��DQG�WKLV�GRHV�QRW�UHVXOW�LQ�DQ\�SURWRFRO�DFWLYLW\��,I�D�VRFNHW�LV�FRQQHFWHG�LQ�WKLV�PDQQHU��LW�ZLOO�RQO\�UHFHLYH�SDFNHWV�VHQW�IURP�WKH�FRQQHFWHG�DGGUHVV��RWKHU�SDFNHWV�GHVWLQHG�IRU�WKH�VRFNHW�DUH�VLOHQWO\�GLVFDUGHG�

5HOLDEOH�YV��8QUHOLDEOH�'DWD�'HOLYHU\

0RVW�SK\VLFDO�QHWZRUNV�DUH�LQKHUHQWO\�XQUHOLDEOH��7KH\�FDQ�GURS�GDWD��FRUUXSW�LW��GHOLYHU�LW�RXW�RI�RUGHU��DQG�GHOLYHU�PXOWLSOH�FRSLHV�RI�LW��6RPH�WUDQVSRUW�SURWRFROV�KLGH�WKLV�XQUHOLDELOLW\�IURP�DSSOLFDWLRQV�E\�XVLQJ�SURWRFRO�OHYHO�PHFKDQLVPV�WR�HQVXUH�WKDW�GDWD�LV�GHOLYHUHG�LQ�WKH�FRUUHFW�RUGHU��ZLWKRXW�ORVV��FRUUXSWLRQ��RU�GXSOLFDWLRQ��2WKHU�WUDQVSRUW�SURWRFROV�GR�QRW�PDNH�WKHVH�JXDUDQWHHV��WKH\�VLPSO\�PDNH�D�EHVW�HIIRUW�WR�JHW�WKH�GDWD�WR�LWV�LQWHQGHG�UHFLSLHQW��EXW�SK\VLFDO�QHWZRUN�IDLOXUHV�FDQ�OHDG�WR�GDWD�LQWHJULW\�SUREOHPV�

%HFDXVH�WKH\�KDYH�OHVV�LQKHUHQW�RYHUKHDG��XQUHOLDEOH�SURWRFROV�RIWHQ�SURYLGH�EHWWHU�SHUIRUPDQFH��HVSHFLDOO\�IRU�DSSOLFDWLRQV�ZKLFK�VHQG�VPDOO�DPRXQWV�RI�GDWD�LQ�D�UHTXHVW�UHVSRQVH��WUDQVDFWLRQ��IRUPDW��+RZHYHU��FRQQHFWLRQOHVV�SURWRFROV�LPSRVH�WKH�EXUGHQ�RQ�WKH�DSSOLFDWLRQ�RI�GRLQJ�ZKDWHYHU�UHOLDELOLW\�JXDUDQWHHV�DUH�QHFHVVDU\��DQG�WKHUHIRUH�OHDG�WR�PRUH�FRPSOLFDWHG�DSSOLFDWLRQV��5HOLDEOH�SURWRFROV�DUH�XVXDOO\�VLPSOHU�IRU�WKH�DSSOLFDWLRQ�DW�WKH�H[SHQVH�RI�D�KLJKHU�FRVW�LQ�V\VWHP�UHVRXUFHV�DQG�SHUIRUPDQFH�

Page 39: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 39 of 50

file:C:\TEMP\01becc72.htm 9/3/99

7\SLFDOO\��FRQQHFWLRQ�RULHQWHG�SURWRFROV�DUH�UHOLDEOH��ZKLOH�FRQQHFWLRQOHVV�SURWRFROV�DUH�XQUHOLDEOH��:KLOH�WKLV�LV�WUXH�RI�DOO�WKH�WUDQVSRUW�SURWRFROV�VXSSRUWHG�E\�:LQGRZV�17��LW�LV�QRW�UHTXLUHG�WKDW�WKHVH�DOZD\V�JR�KDQG�LQ�KDQG�

2UGHUO\�5HOHDVH

)RU�D�FRQQHFWLRQ�RULHQWHG�WUDQVSRUW��WKHUH�DUH�WZR�ZD\V�WR�WHUPLQDWH�D�YLUWXDO�FLUFXLW��RUGHUO\�DQG�DERUWLYH��,Q�DQ�RUGHUO\�UHOHDVH��ERWK�VLGHV�JHW�D�FKDQFH�WR�LQGLFDWH�WKDW�WKH\�KDYH�VHQW�DOO�WKH�GDWD�WKH\�LQWHQG�WR�VHQG��DQG�RQO\�ZKHQ�ERWK�VLGHV�DUH�GRQH�LV�WKH�DFWXDO�FLUFXLW�WHUPLQDWHG��)RU�VXFK�D�UHOHDVH�LW�LV�SRVVLEOH�WR�KDYH�RQH�VLGH�LQGLFDWH�WKDW�LW�LV�GRQH�VHQGLQJ�ZLWK�WKH�VKXWGRZQ���$3,�ZKLOH�WKH�RWKHU�VLGH�FRQWLQXHV�VHQGLQJ��,Q�DQ�DERUWLYH�WHUPLQDWLRQ�RI�D�YLUWXDO�FLUFXLW��RQH�VLGH�GHFLGHV�WKDW�LW�LV�WLPH�WR�WHUPLQDWH�WKH�FLUFXLW�DQG�XQLODWHUDOO\�HQGV�WKH�FRQQHFWLRQ��,I�WKH�RWKHU�VLGH�DWWHPSWV�WR�XVH�WKH�FRQQHFWHG�VRFNHW��WKH�UHTXHVW�IDLOV�

%\�GHIDXOW��FORVHVRFNHW���DOVR�DWWHPSWV�DQ�RUGHUO\�UHOHDVH�RI�WKH�FRQQHFWLRQ��+RZHYHU��XQGHU�VHYHUDO�FLUFXPVWDQFHV��VXFK�DV�SHQGLQJ�XQUHFHLYHG��RXWVWDQGLQJ�VHQG���FDOOV��DQG�PRUH��D�FORVHVRFNHW���ZLOO�UHVXOW�LQ�DQ�DERUWLYH�FORVH�

$OO�WUDQVSRUW�SURWRFROV�VXSSRUW�WKH�FRQFHSW�RI�DQ�DERUWLYH�UHOHDVH��EXW�QRW�DOO�SURWRFROV�VXSSRUW�RUGHUO\�UHOHDVH��,I�DQ�DSSOLFDWLRQ�DWWHPSWV�DQ�RUGHUO\�UHOHDVH�RQ�D�WUDQVSRUW�ZKLFK�GRHV�QRW�VXSSRUW�RUGHUO\�UHOHDVH��WKH�FRQQHFWLRQ�LV�WHUPLQDWHG�DERUWLYHO\��7&3�VXSSRUWV�RUGHUO\�UHOHDVH��ZKLOH�63;�VXSSRUWV�RQO\�DERUWLYH�UHOHDVH�

6WUHDP�2ULHQWHG�YV��0HVVDJH�2ULHQWHG

&RQQHFWLRQ�RULHQWHG�WUDQVSRUW�SURWRFROV�FDQ�EH�HLWKHU�VWUHDP�RULHQWHG�RU�PHVVDJH�RULHQWHG��,Q�D�PHVVDJH�RULHQWHG�WUDQVSRUW�SURWRFRO��HDFK�EORFN�RI�GDWD�LV�VHQW�DQG�UHFHLYHG�DV�D�VLQJOH�EORFN�RI�GDWD��$Q�LQGLYLGXDO�PHVVDJH�LV�QHYHU�EURNHQ�GRZQ�ZKHQ�UHFHLYHG��DOWKRXJK�D�WUDQVSRUW�SURWRFRO�PD\�EH�IRUFHG�WR�EUHDN�GRZQ�D�PHVVDJH�LI�LW�LV�ODUJHU�WKDQ�WKH�SK\VLFDO�QHWZRUNV�PD[LPXP�WUDQVPLVVLRQ�XQLW��078���+RZHYHU��WKLV�LV�WUDQVSDUHQW�WR�WKH�DSSOLFDWLRQ�

,Q�D�VWUHDP�RULHQWHG�WUDQVSRUW��GDWD�LV�VHQW�DQG�UHFHLYHG�DV�D�FRQWLQXRXV�VWUHDP�RI�GDWD�ZLWKRXW�DQ\�PHVVDJH�ERXQGDULHV��7KH�WUDQVSRUW�SURWRFRO�LV�IUHH�WR�FRDOHVFH�GDWD�IURP�GLVFUHWH�VHQG���FDOOV�DQG�GHOLYHU�LW�WR�D�VLQJOH�UHFY���FDOO�DV�ZHOO�DV�WR�EUHDN�GRZQ�WKH�GDWD�EXIIHU�JLYHQ�WR�D�VLQJOH�VHQG���FDOO�DQG�GHOLYHU�LW�WR�VHYHUDO�UHFY���FDOOV��$Q�DSSOLFDWLRQ�KDV�QR�FRQWURO�RYHU�KRZ�WKHVH�EUHDNGRZQV�RFFXU��DQG�DQ�DSSOLFDWLRQ�JHWV�QR�QRWLILFDWLRQ�RI�KRZ�GDWD�ZDV�VHQW��,I�DQ�DSSOLFDWLRQ�QHHGV�WR�FRPPXQLFDWH�LQ�GLVFUHWH�PHVVDJHV��LW�LV�WKH�UHVSRQVLELOLW\�RI�WKH�DSSOLFDWLRQ�WR�GR�PHVVDJH�IUDPLQJ��IRU�H[DPSOH�E\�SURFHHGLQJ�PHVVDJH�GDWD�E\�WKH�OHQJWK�RI�WKH�PHVVDJH�RQ�VHQG�DQG�UHFHLYLQJ�XQWLO�WKH�VSHFLILHG�OHQJWK�KDV�DUULYHG�

6RPH�PHVVDJH�RULHQWHG�SURWRFROV�VXSSRUW�VWUHDP�VHPDQWLFV�LQ�DGGLWLRQ�WR�PHVVDJH�VHPDQWLFV��,I�DQ�DSSOLFDWLRQ�RSHQV�D�VRFNHW�ZLWK�62&.B675($0�RQ�VXFK�D�WUDQVSRUW��WKHQ�WKH�WUDQVSRUW�LJQRUHV�DOO�PHVVDJH�ERXQGDULHV�ZKHQ�WUDQVPLWWLQJ�DQG�UHFHLYLQJ�GDWD��,W�VLPSO\�GHOLYHUV�GDWD�DV�LW�EHFRPHV�DYDLODEOH�ZLWKRXW�UHJDUG�WR�ZKHWKHU�WKH�GDWD�FRPSULVHV�D�FRPSOHWH�PHVVDJH��7KLV�IHDWXUH�LV�KDQG\�IRU�PD[LPL]LQJ�DSSOLFDWLRQ�SRUWDELOLW\��1RWH��KRZHYHU��WKDW�VWUHDP�RULHQWHG�WUDQVSRUW�SURWRFROV�FDQQRW�LPSOHPHQW�PHVVDJH�RULHQWHG�VHPDQWLFV�GXH�WR�ODFN�RI�LQIRUPDWLRQ�

Page 40: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 40 of 50

file:C:\TEMP\01becc72.htm 9/3/99

([SHGLWHG�'DWD

6RPH�FRQQHFWLRQ�RULHQWHG�WUDQVSRUW�SURWRFROV�VXSSRUW�WKH�FRQFHSW�RI�H[SHGLWHG�GDWD��DOVR�UHIHUUHG�WR�DV�XUJHQW�GDWD�RU�RXW�RI�EDQG�GDWD��'DWD�VHQW�ZLWK�WKH�06*B22%�IODJ�LQ�WKH�VHQG���$3,�LV�VHQW�DV�H[SHGLWHG�GDWD��DQG�WKH�WUDQVSRUW�SURWRFRO�PDNHV�HYHU\�HIIRUW�WR�GHOLYHU�WKH�GDWD�DV�TXLFNO\�DV�SRVVLEOH��2IWHQ�WKH�GDWD�LV�GHOLYHUHG�RXW�RI�RUGHU�VR�WKDW�LW�JHWV�WR�WKH�RWKHU�DSSOLFDWLRQ�DV�TXLFNO\�DV�SRVVLEOH��$SSOLFDWLRQV�LQWHUHVWHG�LQ�PD[LPXP�SRUWDELOLW\�VKRXOG�DYRLG�H[SHGLWHG�GDWD�VLQFH�LW�LV�QRW�VXSSRUWHG�E\�DOO�WUDQVSRUW�SURWRFROV�

&RQQHFW�DQG�'LVFRQQHFW�'DWD

$�IHZ�WUDQVSRUW�SURWRFROV�VXSSRUW�FRQQHFW�DQG�GLVFRQQHFW�GDWD��ZKHUH�D�VPDOO�DPRXQW�RI�GDWD�LV�VHQW�E\�HDFK�VLGH�ZKHQ�D�YLUWXDO�FLUFXLW�LV�HVWDEOLVKHG�RU�WHUPLQDWHG��7KLV�GDWD�FDQ�EH�DQ\WKLQJ��EXW�LV�RIWHQ�QHJRWLDWLRQ�LQIRUPDWLRQ�DERXW�WKH�YHUVLRQ�RI�VRIWZDUH�FRQQHFWLQJ��HWF��$JDLQ��DSSOLFDWLRQV�GHVLULQJ�SURWRFRO�SRUWDELOLW\�VKRXOG�DYRLG�WKLV�IHDWXUH�VLQFH�LW�LV�QRW�XQLYHUVDOO\�VXSSRUWHG�

%URDGFDVWV

0RVW�FRQQHFWLRQOHVV�WUDQVSRUW�SURWRFROV�VXSSRUW�EURDGFDVW�LQ�WKH�VDPH�IDVKLRQ��ZKHUH�DQ\�ERXQG�VRFNHW�FDQ�VHQG�D�EURDGFDVW�LI�WKH�62B%52$'&$67�RSWLRQ�LV�VHW��DQG�EURDGFDVWV�VHQW�WR�WKH�DSSURSULDWH�ORFDO�HQGSRLQW�DUH�UHFHLYHG�ZLWKRXW�DQ\�DGGLWLRQDO�ZRUN�RQ�WKH�SDUW�RI�WKH�DSSOLFDWLRQ��1HW%,26�WUDQVSRUWV��KRZHYHU��KDQGOH�EURDGFDVWV�VRPHZKDW�GLIIHUHQWO\��,Q�RUGHU�WR�UHFHLYH�EURDGFDVWV��DQ�DSSOLFDWLRQ�PXVW�ELQG�WR�WKH�1HW%,26�EURDGFDVW�DGGUHVV��ZKLFK�LV�DQ�DVWHULVN�� ��IROORZHG�E\����VSDFHV��$6&,,�FKDUDFWHU��[�����7KLV�PHDQV�WZR�WKLQJV��D�VRFNHW�PXVW�EH�VSHFLDOO\�ERXQG�WR�UHFHLYH�EURDGFDVWV��DQG�DSSOLFDWLRQV�FDQW�GHSHQG�RQ�UHFHLYLQJ�EURDGFDVWV�LQWHQGHG�RQO\�IRU�D�VSHFLILF�DSSOLFDWLRQ��VLQFH�DOO�1HW%,26�EURDGFDVWV�DUH�GHOLYHUHG�WR�WKLV�DGGUHVV��,Q�RWKHU�SURWRFROV�VXFK�DV�8'3�,3�DQG�,3;��EURDGFDVWV�DUH�GHOLYHUHG�WR�D�VRFNHW�RQO\�LI�WKH�EURDGFDVW�ZDV�VHQW�WR�WKH�VDPH�SRUW�WR�ZKLFK�WKH�VRFNHW�ZDV�ERXQG�

*XLGHOLQHV�IRU�7UDQVSRUW�,QGHSHQGHQFH

7KH�:LQGRZV�6RFNHWV�LQWHUIDFHV�RI�:LQGRZV�17�DQG�&KLFDJR�DUH�GHVLJQHG�WR�IXOO\�VXSSRUW�DOO�RI�WKH�WUDQVSRUW�SURWRFRO�FKDUDFWHULVWLFV�OLVWHG�DERYH��7KLV�DOORZV�WUDQVSRUW�VSHFLILF�DSSOLFDWLRQV�WR�IXOO\�XWLOL]H�DOO�WKH�LGLRV\QFUDVLHV�RI�D�SDUWLFXODU�SURWRFRO��+RZHYHU��ZKHQ�ZULWLQJ�WUDQVSRUW�LQGHSHQGHQW�DSSOLFDWLRQV��LW�LV�LPSRUWDQW�WR�PLQLPL]H�RU��SUHIHUDEO\��HOLPLQDWH�DOO�XVHV�RI�IHDWXUHV�WKDW�DUH�QRW�VXSSRUWHG�E\�DOO�WUDQVSRUW�SURWRFROV�

0DQ\�RI�WKH�UHVXOWLQJ�JXLGHOLQHV�DUH�IDLUO\�REYLRXV�

� 'RQW�VHQG�RU�DWWHPSW�WR�UHFHLYH�H[SHGLWHG�GDWD��,I�\RX�PXVW�EH�DEOH�WR�UHFHLYH�H[SHGLWHG�GDWD�WR�EH�FRPSDWLEOH�ZLWK�ROGHU�VRIWZDUH��XVH�WKH�62B22%,1/,1(�VRFNHW�RSWLRQ�DQG�WUHDW�H[SHGLWHG�GDWD�DV�QRUPDO�GDWD�LQ�\RXU�GDWD�UHFHSWLRQ�FRGH�

� 1HYHU�XVH�FRQQHFW�RU�GLVFRQQHFW�GDWD��,I�\RX�QHHG�WR�LQFOXGH�LQIRUPDWLRQ�DW�WKH�VWDUW�RU�HQG�RI�D�WUDQVPLVVLRQ��SXW�LW�LQ�WKH�QRUPDO�GDWD�VWUHDP�

Page 41: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 41 of 50

file:C:\TEMP\01becc72.htm 9/3/99

� ,I�\RX�FRQWURO�\RXU�DSSOLFDWLRQV�RQ�WKH�ZLUH�GDWD�IRUPDW��SHUIRUP�\RXU�RZQ�PHVVDJH�IUDPLQJ�IRU�ERWK�VWUHDP�DQG�PHVVDJH�SURWRFROV��0HVVDJH�IUDPLQJ�PHDQV�WR�PDNH�WKH�OHQJWK�RI�WKH�PHVVDJH�VHOI�GHVFULELQJ��IRU�H[DPSOH��E\�LQFOXGLQJ�WKH�PHVVDJH�OHQJWK�DV�WKH�ILUVW�WZR�E\WHV�RI�WKH�PHVVDJH��7KH�DSSOLFDWLRQ�FDQ�WKHQ�UHDG�WZR�E\WHV��NQRZ�WKH�WRWDO�PHVVDJH�VL]H��DQG�UHDG�WKH�UHPDLQGHU�RI�WKH�PHVVDJH��7KLV�DEVWUDFWV�WKH�GLVWLQFWLRQ�EHWZHHQ�PHVVDJH�RULHQWHG�DQG�VWUHDP�RULHQWHG�WUDQVSRUW�SURWRFROV�

� $VVXPH�WKDW�WKH�WUDQVSRUW�SURWRFRO�GRHVQW�VXSSRUW�D�JUDFHIXO�FORVH��,W�LV�DOZD\V�SRVVLEOH�WR�GR�DQ�DERUWLYH�FORVH��EXW�D�JUDFHIXO�FORVH�LV�QRW�DOZD\V�VXSSRUWHG��8VH�DQ�DSSOLFDWLRQ�OHYHO�SURWRFRO�WR�HQVXUH�WKDW�DOO�GDWD�KDV�EHHQ�FRUUHFWO\�WUDQVPLWWHG�

� 7\SLFDOO\��ERWK�FRQQHFWLRQOHVV�DQG�FRQQHFWLRQ�RULHQWHG�WUDQVSRUW�SURWRFROV�ZLOO�EH�DYDLODEOH�RQ�DQ\�JLYHQ�PDFKLQH��7KHUHIRUH��LW�LV�UHDVRQDEOH�WR�XVH�ZKLFKHYHU�LV�PRVW�FRQYHQLHQW�IRU�\RXU�DSSOLFDWLRQ��ZKLFK�ZLOO�W\SLFDOO\�EH�FRQQHFWLRQ�RULHQWHG�VLQFH�LW�IUHHV�WKH�DSSOLFDWLRQ�IURP�KDYLQJ�WR�ZRUU\�DERXW�UHOLDEOH�GDWD�GHOLYHU\�

3HUIRUPDQFH�DQG�:LQGRZV�6RFNHWV%HFDXVH�:LQGRZV�6RFNHWV�LV�MXVW�D�WUDQVSRUW�SURWRFRO�LQWHUIDFH�DQG�QRW�D�SURWRFRO�LWVHOI��LW�LV�DEOH�WR�DFKLHYH�D�YHU\�KLJK�OHYHO�RI�SHUIRUPDQFH��:HOO�ZULWWHQ�DQG�RSWLPL]HG�:LQGRZV�6RFNHWV�DSSOLFDWLRQV�DQG�VHUYLFHV�W\SLFDOO\�SHUIRUP�PXFK�EHWWHU�WKDQ�DSSOLFDWLRQV�ZULWWHQ�WR�1DPHG�3LSHV��1HW%,26��RU�RWKHU�FRPPXQLFDWLRQ�PHFKDQLVPV��+RZHYHU��EHFDXVH�:LQGRZV�6RFNHWV�LV�VR��FORVH�WR�WKH�PHWDO��RI�WKH�WUDQVSRUW�SURWRFRO��LW�LV�DOVR�SRVVLEOH�WR�ZULWH�:LQGRZV�6RFNHWV�DSSOLFDWLRQV�DQG�VHUYLFHV�ZKLFK�SHUIRUP�YHU\�SRRUO\�

([FHOOHQW�SHUIRUPDQFH�GRHV�QRW�FRPH�IUHH��'HYHORSHUV�PXVW�VSHQG�VRPH�WLPH�XQGHUVWDQGLQJ�WKH�SHUIRUPDQFH�FKDUDFWHULVWLFV�RI�WKHLU�DSSOLFDWLRQV��WKHQ�PDNLQJ�PRGLILFDWLRQV�WR�HQKDQFH�SHUIRUPDQFH��$�JRRG�QHWZRUN�DQDO\]HU�LV�XVXDOO\�HVVHQWLDO�IRU�QHWZRUN�SHUIRUPDQFH�ZRUN��DV�WKH�DQDO\]HU�ZLOO�LQGLFDWH�ZKHUH�WKH�ERWWOHQHFNV�DUH�DQG�KRZ�HIILFLHQWO\�WKH�DSSOLFDWLRQ�LV�XVLQJ�WKH�SK\VLFDO�QHWZRUN��$OVR�LPSRUWDQW�DUH�JRRG�EHQFKPDUNV�ZKLFK�ERWK�HYDOXDWH�WKH�LPSRUWDQW�SHUIRUPDQFH�FDVHV�DQG�SURYLGH�FRQVLVWHQW��UHSURGXFLEOH�UHVXOWV�

(IIHFW�RI�WKH�1HWZRUN�&DUG�

2Q�DQ�(WKHUQHW�QHWZRUN��:LQGRZV�17�����7&3�,3�:LQGRZV�6RFNHWV�DSSOLFDWLRQ�UXQQLQJ�RQ�D��������ZLWK�D�IDVW�QHWZRUN�FDUG�FDQ�VDWXUDWH�WKH�ZLUH��!����.%�VHF��XVLQJ�DSSUR[LPDWHO\�����RI�WKH�V\VWHP�&38��+RZHYHU��ZLWK�D�VORZ�QHWZRUN�FDUG��WKH�VDPH�V\VWHP�DQG�DSSOLFDWLRQ�PD\�DFKLHYH�RQO\����.%�VHF�ZKLOH�XVLQJ������RI�WKH�&38�

:K\�WKH�GLIIHUHQFH"�6ORZHU�QHWZRUN�FDUGV��LQFOXGLQJ�DOO���ELW�DQG�PRVW����ELW�FDUGV��FDXVH�WKH�&38�WR�GR�DGGLWLRQDO�EXIIHU�FRSLHV�DQG�SXW�WKH�&38�LQWR�QXPHURXV�ZDLW�VWDWHV�ZKHUH�WKH�&38�LV�MXVW�VSLQQLQJ��ZDLWLQJ�IRU�WKH�FDUG�WR�GR�VRPHWKLQJ��+RZHYHU��WKH�IDVW�QHWZRUN�FDUGV��ZKLFK�DUH�W\SLFDOO\����ELW�EXV�PDVWHULQJ�(,6$�RU�3&,�FDUGV��GR�QRW�LPSRVH�WKHVH�&38�FRVWV��LQVWHDG�KDQGOLQJ�WKHPVHOYHV�PDQ\�RI�WKH�FKRUHV�UHTXLUHG�WR�VHQG�DQG�UHFHLYH�GDWD�

6LQFH�D�GHYHORSHU�FDQQRW�FRQWURO�WKH�QHWZRUN�FDUGV�WKDW�ZLOO�EH�LQ�XVH�E\�HQG�XVHUV��LW�LV�XVXDOO\�EHVW�WR�GR�SHUIRUPDQFH�WHVWLQJ�ZLWK�IDVWHU�QHWZRUN�FDUGV�ZKHUH�WKH�&38�RU�SK\VLFDO�QHWZRUN��QRW�WKH�FDUG�LWVHOI���LV�WKH�ERWWOHQHFN��:KHQ�WKH�FDUG�LV�WKH�ERWWOHQHFN��LW�FDQ�PDVN�

Page 42: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 42 of 50

file:C:\TEMP\01becc72.htm 9/3/99

VLJQLILFDQW�SHUIRUPDQFH�SUREOHPV�DQG�ODUJH�LPSURYHPHQWV�LQ�WKH�&38�XWLOL]DWLRQ�RI�WKH�DSSOLFDWLRQ�PD\�KDYH�D�QHJOLJLEOH�HIIHFW��:LWK�D�IDVW�FDUG��KRZHYHU��WKH�ERWWOHQHFN�ZLOO�XVXDOO\�EH�WKH�DSSOLFDWLRQ�LWVHOI��VR�SHUIRUPDQFH�SUREOHPV�DQG�LPSURYHPHQWV�VKRZ�TXLFNO\�

7KUHDGLQJ�0RGHOV

)RU�D�FOLHQW�DSSOLFDWLRQ��WKH�FKRVHQ�WKUHDGLQJ�PRGHO�W\SLFDOO\�GRHV�QRW�KDYH�D�VLJQLILFDQW�HIIHFW�RQ�SHUIRUPDQFH��+RZHYHU��VHUYLFHV�WKDW�KDQGOH�WHQV�RU�KXQGUHGV�RU�UHPRWH�XVHUV�QHHG�WR�VHOHFW�FDUHIXOO\�WKH�WKUHDGLQJ�PRGHO�WKH\�XVH�EHFDXVH�D�SRRU�FKRLFH�FDQ�OHDG�WR�SRRU�SHUIRUPDQFH�

7KH�VLPSOHVW�WKUHDG�PRGHO�LV�D�VLQJOH�SURFHVV�ZLWK�D�VLQJOH�WKUHDG�WKDW�KDQGOHV�DOO�WKH�FRQQHFWHG�FOLHQWV��W\SLFDOO\�XVLQJ�WKH�VHOHFW���$3,�WR�PXOWLSOH[�EHWZHHQ�WKH�FOLHQWV��$�VLQJOH�ORRS�FDOOV�VHOHFW���UHSHDWHGO\��FDOOLQJ�VHQG����UHFY����RU�DFFHSW���ZKHQ�WKH�VHOHFW���FDOO�LQGLFDWHV�WKDW�DQ�DFWLRQ�FDQ�EH�SHUIRUPHG�RQ�RQH�RI�WKH�VRFNHWV��:KLOH�VLPSOH�WR�LPSOHPHQW��WKH�SHUIRUPDQFH�RI�VHUYLFHV�XVLQJ�WKLV�PRGHO�FDQ�VXIIHU�EHFDXVH�HYHU\�QHWZRUN�,�2�FDOO�SDVVHV�WKURXJK�VHOHFW���ZKLFK�LQFXUV�VLJQLILFDQW�&38�RYHUKHDG�IRU�HDFK�,�2��7KLV�LV�DFFHSWDEOH�ZKHQ�&38�XVH�LV�QRW�DQ�LVVXH��EXW�SUHVHQWV�D�SUREOHP�ZKHQ�WKH�VHUYLFH�UHTXLUHV�KLJK�SHUIRUPDQFH�

7KH�QH[W�PRVW�FRPSOLFDWHG�PRGHO�LV�D�VLQJOH�WKUHDG�IRU�HDFK�FOLHQW��(YHU\�WLPH�D�FOLHQW�FRQQHFWV��WKH�VHUYLFH�FDOOV�&UHDWH7KUHDG���WR�FUHDWH�D�WKUHDG�ZKLFK�KDQGOHV�WKH�FOLHQW�IRU�WKH�GXUDWLRQ�RI�WKH�FRQQHFWLRQ��7KLV�PRGHO�FDQ�DFKLHYH�YHU\�KLJK�SHUIRUPDQFH�ZKHQ�WKH�QXPEHU�RI�FRQQHFWHG�FOLHQWV�LV�VPDOO��EXW�DW�DURXQG����FOLHQWV�WKH�WKUHDG�FRQWH[W�VZLWFKLQJ�DQG�UHVRXUFH�RYHUKHDG�EHJLQV�WR�SUHVHQW�D�VLJQLILFDQW�EXUGHQ�IRU�WKH�V\VWHP��

$�VLPLODU�PRGHO�WR�WKUHDG�SHU�FOLHQW�LV�SURFHVV�SHU�FOLHQW��,Q�SURFHVV�SHU�FOLHQW��DQ�HQWLUH�QHZ�SURFHVV�LV�FUHDWHG�XVLQJ�&UHDWH3URFHVV���IRU�HDFK�FOLHQW�WKDW�FRQQHFWV��7KLV�LV�WKH�PRGHO�W\SLFDOO\�XVHG�LQ�81,;�'DHPRQV��7KLV�PRGHO�LV�GLVFRXUDJHG�IRU�:LQGRZV�17�DQG�:LQGRZV����EHFDXVH�SURFHVVHV�DUH�PXFK�PRUH�H[SHQVLYH�WKDQ�WKUHDGV��ERWK�LQ�WHUPV�RI�UHVRXUFHV�XVHG�DQG�LQ�WKH�&38�RYHUKHDG�RI�FRQWH[W�VZLWFKLQJ�

7KH�PRVW�HIILFLHQW�WKUHDGLQJ�PRGHOV�XVH�D�ZRUNHU�WKUHDG�SRRO��,Q�WKLV�PRGHO��D�SRRO�RI�WKUHDGV�VHUYLFHV�DOO�WKH�FRQQHFWHG�FOLHQWV��,Q�ZRUNHU�WKUHDG�PRGHOV��WKH�VHUYLFH�ZLOO�XVXDOO\�XVH�RYHUODSSHG�,�2�ZLWK�WKH�:LQ����:ULWH)LOH���DQG�5HDG)LOH���$3,V�WR�IDFLOLWDWH�PXOWLSOH[LQJ�DQG�PLQLPL]H�WKH�QXPEHU�RI�WKUHDGV�UHTXLUHG�E\�WKH�VHUYLFH��,Q�:LQGRZV�17������,�2�FRPSOHWLRQ�SRUWV�PD\�EH�XVHG�IRU�DGGLWLRQDO�HIILFLHQF\��:KLOH�WKLV�WKUHDGLQJ�PRGHO�LV�WKH�PRVW�HIILFLHQW�IRU�ODUJH�QXPEHUV�RI�FOLHQWV��LW�LV�DOVR�WKH�PRVW�FRPSOH[��7KHUHIRUH��LW�VKRXOG�RQO\�EH�XVHG�ZKHUH�LW�LV�UHTXLUHG�WR�KDYH�KLJK�SHUIRUPDQFH�ZLWK�ODUJH�QXPEHUV�RI�FRQQHFWHG�FOLHQWV�

,�2�%XIIHU�6L]H

(YHU\�WLPH�DQ�DSSOLFDWLRQ�DVNV�WR�VHQG�RU�UHFHLYH�GDWD��WKH�V\VWHP�PXVW�XQGHUJR�D�FHUWDLQ�DPRXQW�RI�RYHUKHDG�WR�FKHFN�WKH�SDUDPHWHUV�DQG�EXIIHUV�VSHFLILHG�WR�WKH�FDOO��7KHVH�FKHFNV�FRVW�F\FOHV��VR�LW�LV�EHVW�WR�GR�DV�IHZ�,�2�FDOOV�DV�SRVVLEOH�WR�VHQG�WKH�QHFHVVDU\�DPRXQW�RI�GDWD�

7KH�HDVLHVW�ZD\�WR�PLQLPL]H�WKH�QXPEHU�RI�,�2�FDOOV�LV�WR�JLYH�HDFK�FDOO�D�ELJ�FKXQN�RI�GDWD��)RU�H[DPSOH��LI�\RX�QHHG�WR�VHQG����.%�RI�GDWD��GRQW�GR�����FDOOV�WR�VHQG���ZLWK��.�LQ�HDFK�FDOO��,QVWHDG��GR�MXVW�D�FRXSOH�RI�FDOOV�ZLWK���.�RU���.�RI�GDWD��7KLV�ZD\�\RX�JHW�WKH�GDWD�WUDQVIHUUHG�ZLWK�IHZHU�,�2�FDOOV�

+RZHYHU��LW�LV�EHVW�QRW�WR�VSHFLI\�WRR�PXFK�GDWD�WR�DQ\�RQH�,�2�FDOO�EHFDXVH�WKH�GDWD�PXVW�EH�ORFNHG�GRZQ�LQ�SK\VLFDO�PHPRU\�LQ�RUGHU�WR�EH�

Page 43: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 43 of 50

file:C:\TEMP\01becc72.htm 9/3/99

XVHG��+LJK�SHUIRUPDQFH�DSSOLFDWLRQV�DQG�VHUYLFHV�XVH�EXIIHU�VL]HV�LQ�WKH�UDQJH�RI��.�WR���.�WR�EDODQFH�EHWZHHQ�WKH�SK\VLFDO�PHPRU\�FRVW�RI�WKH�ORFNHG�GRZQ�EXIIHU�DQG�WKH�&38�RYHUKHDG�RI�HDFK�,�2�FDOO��7KH�EHVW�ZD\�WR�GHWHUPLQH�D�VSHFLILF�QXPEHU�IRU�\RXU�DSSOLFDWLRQ�LV�H[SHULPHQWDWLRQ�

$QRWKHU�SUREOHP�ZLWK�VPDOO�,�2�LV�WKH�HIIHFW�RI�1DJOLQJ��1DJOLQJ��ZKLFK�RFFXUV�RQO\�ZLWK�7&3�,3��LV�DQ�DWWHPSW�E\�WKH�WUDQVSRUW�SURWRFRO�WR�FRDOHVFH�VPDOO�EXIIHUV�LQWR�ODUJHU�EXIIHUV�VR�WKDW�WKHUH�DUH�QRW�D�ORW�RI�WLQ\�SDFNHWV�RQ�WKH�SK\VLFDO�QHWZRUN��:KLOH�1DJOLQJ�KHOSV�WR�UHGXFH�VPDOO�SDFNHWV�RQ�WKH�QHWZRUN��LW�GRHV�LW�E\�GHOD\LQJ�VHQGV�XQWLO�WKHUH�LV�PRUH�GDWD�DYDLODEOH�WR�VHQG��:LWK�VPDOO�EXIIHUV�SDVVHG�WR�VHQG���WKHVH�GHOD\V�FDQ�VLJQLILFDQWO\�LPSDFW�SHUIRUPDQFH��VORZLQJ�GRZQ�WKH�DSSOLFDWLRQ�E\�DV�PXFK�DV���������

0LQLPL]LQJ�%XIIHU�&RSLHV

8QGHU�PRVW�81,;�LPSOHPHQWDWLRQV��HYHU\�VRFNHWV�,�2�UHTXHVW�UHVXOWV�LQ�D�EXIIHU�FRS\�WR�RU�IURP�D�V\VWHP�EXIIHU��7KLV�JHQHUDOO\�VLPSOLILHV�WKLQJV�IRU�DSSOLFDWLRQV��EXW�DW�WKH�FRVW�RI�H[WUD�&38�RYHUKHDG�WR�SHUIRUP�WKH�EXIIHU�FRS\�

8QGHU�:LQGRZV�17�DQG�:LQGRZV����RSHUDWLQJ�V\VWHPV��:LQGRZV�6RFNHWV�DWWHPSWV�WR�DYRLG�EXIIHU�FRSLHV�ZKHQHYHU�SRVVLEOH��+RZHYHU��DSSOLFDWLRQ�DFWLRQV�SOD\�D�ELJ�UROH�LQ�KRZ�RIWHQ�EXIIHU�FRSLHV�PXVW�EH�SHUIRUPHG�

2Q�WKH�VHQGLQJ�VLGH��WKH�UXOHV�IRU�EXIIHU�FRSLHV�DUH�VLPSOH��%\�GHIDXOW��:LQGRZV�6RFNHWV�DOZD\V�FRSLHV�WKH�XVHU�EXIIHU�LQWR�DQ�LQWHUPHGLDWH�EXIIHU�EHIRUH�SDVVLQJ�LW�RQ�WR�WKH�WUDQVSRUW�SURWRFRO��7KLV�LV�EHFDXVH�WKH�WUDQVSRUW�SURWRFRO�PXVW�KDQJ�RQ�WR�WKH�GDWD�XQWLO�LW�UHFHLYHV�DQ�DFNQRZOHGJPHQW�IURP�WKH�UHPRWH�HQG�WKDW�WKH�GDWD�KDV�EHHQ�VXFFHVVIXOO\�UHFHLYHG��+RZHYHU��PRVW�DSSOLFDWLRQV�ZDQW�WKHLU�VHQG���FDOO�WR�FRPSOHWH�LPPHGLDWHO\�VR�WKDW�WKH�WKUHDG�FDQ�SURFHHG�ZLWK�RWKHU�ZRUN�

$SSOLFDWLRQV�DQG�VHUYLFHV�ZKLFK�UHTXLUH�H[WUHPHO\�KLJK�SHUIRUPDQFH�FDQ��DW�WKH�FRVW�RI�VRPH�FRPSOH[LW\��DYRLG�WKH�VHQG�VLGH�EXIIHU�FRSLHV��7R�DYRLG�WKH�EXIIHU�FRSLHV��VHW�WKH�62B61'%8)�VRFNHW�RSWLRQ�WR����ZKLFK�WHOOV�:LQGRZV�6RFNHWV�QRW�WR�GR�VHQG�EXIIHULQJ��7KH�DSSOLFDWLRQ�PXVW�WKHQ�XVH�DQ�RYHUODSSHG�:ULWH)LOH���FDOO�WR�VHQG�GDWD��7KHVH�:ULWH)LOH���FDOOV�ZLOO�QRW�FRPSOHWH�XQWLO�WKH�WUDQVSRUW�SURWRFRO�LV�GRQH�ZLWK�WKH�GDWD��VR�LW�LV�LPSRUWDQW�WR�NHHS�GDWD�DYDLODEOH�WR�WKH�WUDQVSRUW�SURWRFRO�E\�SHQGLQJ�PXOWLSOH�,�2�FDOOV�DW�DQ\�RQH�WLPH��)RU�H[DPSOH��WKH�DSSOLFDWLRQ�FDOOV�:ULWH)LOH���ZKLFK�UHWXUQV�(5525B,2B3(1',1*��%HIRUH�,�2�FRPSOHWLRQ�LV�VLJQDOHG��WKH�DSSOLFDWLRQ�VKRXOG��DVVXPLQJ�WKDW�WKHUH�LV�PRUH�GDWD�WR�EH�VHQW��FDQ�:ULWH)LOH���D�VHFRQG�WLPH��$V�VRRQ�DV�WKH�ILUVW�:ULWH)LOH���FRPSOHWHV��WKH�DSSOLFDWLRQ�FDOOV�:ULWH)LOH���DJDLQ��JLYLQJ�\HW�PRUH�GDWD��7KLV��GRXEOH�EXIIHULQJ��HQVXUHV�WKDW�WKHUH�LV�DOZD\V�GDWD�DYDLODEOH�LQ�WKH�WUDQVSRUW�SURWRFRO��VR�WKDW�WKH�SLSH�QHYHU�HPSWLHV�

2Q�WKH�UHFHLYLQJ�VLGH��WKH�UXOHV�DUH�D�OLWWOH�GLIIHUHQW��:LQGRZV�6RFNHWV�ZLOO�FRS\�LQFRPLQJ�GDWD�GLUHFWO\�LQWR�D�XVHU�EXIIHU�LI�RQH�LV�DYDLODEOH��,I�WKHUH�LV�QR�DYDLODEOH�XVHU�EXIIHU��:LQGRZV�6RFNHWV�LV�IRUFHG�WR�FRS\�LQWR�D�V\VWHP�EXIIHU��WKHQ�LQWR�D�XVHU�EXIIHU�ZKHQ�RQH�HYHQWXDOO\�FRPHV�LQ�

$�XVHU�EXIIHU�LV�DYDLODEOH�ZKHQHYHU�D�UHFY���RU�5HDG)LOH���LV�RXWVWDQGLQJ�RQ�D�VRFNHW��7KHUHIRUH��LI�DQ�DSSOLFDWLRQ�FDOOV�UHFY���LQ�DGYDQFH�RI�GDWD�DUULYLQJ��WKH�GDWD�ZLOO�EH�SODFHG�GLUHFWO\�LQWR�WKH�XVHU�EXIIHU��7KLV�LV�DQRWKHU�UHDVRQ�WR�DYRLG�WKH�VHOHFW���FDOO��DSSOLFDWLRQV�ZKLFK�FDOO�VHOHFW���XVXDOO\�GR�QRW�KDYH�DQ\�XVHU�EXIIHUV�DYDLODEOH�WR�WKH�V\VWHP��VR�:LQGRZV�6RFNHWV�LV�IRUFHG�WR�SHUIRUP�EXIIHU�FRSLHV�ZKHQHYHU�GDWD�FRPHV�LQ�

'RXEOH�EXIIHULQJ�FDQ�DOVR�EH�XVHG�RQ�WKH�UHFHLYH�VLGH�WR�DYRLG�EXIIHU�FRSLHV��2Q�WKH�UHFHLYH�VLGH��WKH�DSSOLFDWLRQ�VKRXOG�SHQG�WZR�5HDG)LOH���

Page 44: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 44 of 50

file:C:\TEMP\01becc72.htm 9/3/99

FDOOV�VR�WKDW�WZR�XVHU�EXIIHUV�DUH�DYDLODEOH�WR�WKH�V\VWHP��7KHQ��ZKHQ�GDWD�DUULYHV��LW�GRHV�GLUHFWO\�LQWR�RQH�RI�WKH�EXIIHUV��:KLOH�WKH�DSSOLFDWLRQ�LV�SURFHVVLQJ�WKDW�GDWD��WKHUH�LV�VWLOO�DQRWKHU�EXIIHU�WR�UHFHLYH�LQFRPLQJ�GDWD��WKHUHE\�DYRLGLQJ�WKH�ZLQGRZ�ZKHUH�WZR�FKXQNV�RI�GDWD�DUULYH�EDFN�WR�EDFN��WKH�ILUVW�JRLQJ�LQWR�D�XVHU�EXIIHU�DQG�WKH�VHFRQG�LQWR�D�V\VWHP�EXIIHU�

7KH�7UDQVPLW)LOH���$3,

:LQGRZV�17������DGGV�D�QHZ�:LQGRZV�6RFNHWV�$3,�FDOOHG�7UDQVPLW)LOH����7KLV�$3,�LV�GHVLJQHG�WR�DOORZ�DSSOLFDWLRQV�DQG�VHUYLFHV�WR�VHQG�ILOH�GDWD�YHU\�TXLFNO\�RYHU�WKH�QHWZRUN��,W�ZRUNV�E\�WDNLQJ�KDQGOHV�WR�D�FRQQHFWHG�VRFNHW�DQG�WR�DQ�RSHQ�ILOH��7KHQ��LQ�NHUQHO�PRGH��LW�UHDGV�GDWD�GLUHFWO\�IURP�WKH�V\VWHP�FDFKH�DQG�SDVVHV�LW�RII�WR�WKH�WUDQVSRUW�SURWRFRO��7KLV�DYRLGV�DOO�WKH�EXIIHU�FRSLHV��FRQWH[W�VZLWFKHV��DQG�NHUQHO�WUDQVLWLRQV�DVVRFLDWHG�ZLWK�WKH�W\SLFDO�PHWKRGV�RI�VHQGLQJ�ILOH�GDWD�

$QRWKHU�DGYDQWDJH�RI�7UDQVPLW)LOH���LV�WKDW�LW�DOORZV��KHDG��DQG��WDLO��EXIIHUV�WR�EH�VSHFLILHG�DORQJ�ZLWK�WKH�ILOH�KDQGOH��7KHVH�EXIIHUV�DUH�VHQW�EHIRUH�DQG�DIWHU�WKH�ILOH�GDWD��UHVSHFWLYHO\��7KLV�LV�YHU\�HIILFLHQW�EHFDXVH�LW�DOORZV�WKH�WUDQVSRUW�SURWRFRO�WR�FRPELQH�WKH�KHDG�EXIIHU�ZLWK�WKH�ILUVW�FKXQN�RI�ILOH�GDWD�DQG�WKH�WDLO�EXIIHU�ZLWK�WKH�ODVW�FKXQN�RI�ILOH�GDWD�

7KH�SHUIRUPDQFH�HIIHFW�RI�7UDQVPLW)LOH���LV�VLJQLILFDQW��DV�VKRZQ�LQ�WKH�IROORZLQJ�FKDUW�

Page 45: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 45 of 50

file:C:\TEMP\01becc72.htm 9/3/99

7KLV�FKDUW�FRPSDUHV�WKUHH�FRPPRQ�PHFKDQLVPV�IRU�VHQGLQJ�ILOH�GDWD��ZLWK�WKH�5HDG)LOH���DQG�VHQG���$3,V��E\�PHPRU\�PDSSLQJ�WKH�ILOH��VHWWLQJ�62B61'%8)�WR���DQG�XVLQJ�RYHUODSSHG�:ULWH)LOH���FDOOV��WKHUHE\�DYRLGLQJ�WKH�EXIIHU�FRSLHV���DQG�E\�XVLQJ�7UDQVPLW)LOH����7KHVH�WHVWV�ZHUH�UXQ�ZLWK�D��������RQ�WZR�(WKHUQHWV�ZLWK�&RPSDT�1HWIOH[�FDUGV�

7KH�FKDUW�VKRZV�WKDW�WKH�FRVW�RI�EXIIHU�FRSLHV��NHUQHO�WUDQVLWLRQV��DQG�FRQWH[W�VZLWFKHV�PDNH�5HDG)LOH���DQG�VHQG���WKH�OHDVW�IDVW�ZD\�WR�VHQG�ILOH�GDWD��7KLV�LV�EHFDXVH�WKHUH�DUH�WZR�EXIIHU�FRSLHV�IRU�HYHU\�,�2��LQWR�WKH�XVHU�EXIIHU�IRU�5HDG)LOH���DQG�IURP�WKH�XVHU�EXIIHU�IRU�VHQG����DV�ZHOO�DV�NHUQHO�WUDQVLWLRQV�DQG�FRQWH[W�VZLWFKHV�

8VLQJ�D�PHPRU\�PDSSHG�ILOH�DYRLGV�D�EXIIHU�FRS\�LQWR�WKH�XVHU�EXIIHU�ZKHQ�UHWULHYLQJ�GDWD��DQG�XVLQJ�:ULWH)LOH���ZLWK�62B61'%8)�VHW�WR���DYRLGV�WKH�EXIIHU�FRS\�ZKHQ�VHQGLQJ�WKH�GDWD��7KHUHIRUH��WKLV�PHFKDQLVP�DFKLHYHV�PXFK�EHWWHU�SHUIRUPDQFH��HVSHFLDOO\�IRU�ODUJHU�ILOHV��+RZHYHU��LW�PXVW�VWLOO�LQFXU�WKH�FRVWV�RI�WKH�NHUQHO�WUDQVLWLRQV�DQG�FRQWH[W�VZLWFKHV�

7KH�IDVWHVW�PHWKRG�LV�WKH�7UDQVPLW)LOH���ZKLFK�VLPSO\�VLWV�LQ�NHUQHO�PRGH��XVLQJ�KLJKO\�RSWLPL]HG�FDFKH�PDQDJHU�IXQFWLRQV�WR�UHWULHYH�WKH�GDWD�DQG�WLJKW�FRGH�SDWKV�WR�JLYH�WKLV�GDWD�WR�WKH�WUDQVSRUW�SURWRFRO��8VLQJ�7UDQVPLW)LOH����WKH��������LV�QHDUO\�DEOH�WR�VDWXUDWH�WKH�IXOO�

Page 46: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 46 of 50

file:C:\TEMP\01becc72.htm 9/3/99

EDQGZLGWK�RI�WZR�(WKHUQHWV�ZLWK�ILOH�GDWD�

$QRWKHU�QRWH�RQ�7UDVQPLW)LOH���IRU�KLJK�SHUIRUPDQFH�ILOH�WUDQVIHU�LV�WKDW�LW�LV�UHODWLYHO\�VLPSOH�WR�XVH��7KH�PDSSHG�ILOH�PHFKDQLVP�XVHG�DERYH�WRRN�����OLQHV�RI�VRXUFH�FRGH��ZKLOH�7UDQVPLW)LOH���XVHG�RQO\����

:KHUH�LV�:LQGRZV�6RFNHWV�+HDGHG"$OWKRXJK�:LQGRZV�6RFNHWV�LV�D�QHZ�WHFKQRORJ\��PXFK�HYROXWLRQ�KDV�DOUHDG\�WDNHQ�SODFH�LQ�WKH�7&3�,3�FRPPXQLW\��0LFURVRIWV�QHZ����ELW�RSHUDWLQJ�V\VWHP��:LQGRZV�17��ZLOO�RIIHU�:LQGRZV�6RFNHWV�VXSSRUW�IRU�ERWK�����DQG����ELW�:LQGRZV�DSSOLFDWLRQV��0LFURVRIW�LV�HQFRXUDJLQJ�WKLUG�SDUWLHV�DQG�FRUSRUDWH�GHYHORSHUV�WR�XVH�:LQGRZV�6RFNHWV�DV�WKH�FOLHQW�VHUYHU�DQG�GLVWULEXWHG�DSSOLFDWLRQ�$3,�E\�LQFOXGLQJ�WKH�:LQGRZV�6RFNHWV�$3,�DV�SDUW�RI�:26$��WKH�:LQGRZV�2SHQ�6HUYLFHV�$UFKLWHFWXUH�

6HYHUDO�3&�EDVHG�7&3�,3�LPSOHPHQWDWLRQV�DUH�RIIHULQJ�:LQGRZV�6RFNHWV�VXSSRUW��DQG�RYHU�WZR�GR]HQ�DSSOLFDWLRQ�YHQGRUV�DUH�VKLSSLQJ�:LQGRZV�6RFNHWV�FRPSDWLEOH�DSSOLFDWLRQV��0RUHRYHU��PDQ\�FRUSRUDWLRQV�DUH�VWDQGDUGL]LQJ�RQ�:LQGRZV�6RFNHWV�DV�WKH�$3,�RI�FKRLFH�IRU�FOLHQW�VHUYHU�QHWZRUNLQJ�DSSOLFDWLRQ�GHYHORSPHQW�

7KH�:LQGRZV�6RFNHWV�ZDWHUV�PD\�UHPDLQ�FDOP�IRU�D�VKRUW�ZKLOH��SUREDEO\�RQO\�ORQJ�HQRXJK�WR�DOORZ�DSSOLFDWLRQ�YHQGRUV�DQG�7&3�,3�LPSOHPHQWRUV�WR�SURGXFH�����FRPSDWLEOH�RIIHULQJV��7KHUH�DUH�DOUHDG\�VRPH�LGHDV�RI�ZKDW�IHDWXUHV�IXWXUH�UHYLVLRQV�RI�WKH�VSHFLILFDWLRQ�PD\�LQFRUSRUDWH��WUDQVSDUHQW�WUDQVSRUW�LQGHSHQGHQFH��DFFHVV�WR�UDZ�VRFNHWV�IRU�ORZHU�OHYHO�QHWZRUN�IXQFWLRQV��DQG�WKH�DELOLW\�WR�VKDUH�D�FRQQHFWHG�VRFNHW�EHWZHHQ�GLIIHUHQW�DSSOLFDWLRQV�WR�QDPH�D�IHZ�

7KH�VXFFHVV�RI�WKH�:LQGRZV�6RFNHWV�����HIIRUW�KDV�VSDZQHG�VLJQLILFDQW�LQWHUHVW�LQ�WKH�QH[W�YHUVLRQ��FDOOHG�:LQGRZV�6RFNHWV������7KLV�QHZ�VWDQGDUG�ZLOO�UHPDLQ�EDFNZDUG�FRPSDWLEOH�ZLWK�:LQGRZV�6RFNHWV�����ZKLOH�VROYLQJ�VHYHUDO�RI�WKH�NH\�SUREOHPV�DSSOLFDWLRQ�DQG�VHUYLFH�ZULWHUV�IDFH�WRGD\�LQ�XVLQJ�:LQGRZV�6RFNHWV������WUDQVSRUW�LQGHSHQGHQFH��:LQ���LQWHJUDWLRQ��DQG�VHUYLFH�UHJLVWUDWLRQ�DQG�QDPH�UHVROXWLRQ�

,I�:LQGRZV�6RFNHWV�LV�D�VLJQ�RI�WKLQJV�WR�FRPH�LQ�:LQGRZV�QHWZRUNLQJ��DSSOLFDWLRQ�GHYHORSPHQW�XQGHU�0LFURVRIW�:LQGRZV�ZLOO�FRQWLQXH�WR�EHFRPH�HDVLHU��PRUH�IOH[LEOH��DQG�PRUH�SRZHUIXO�

:RUP+ROH���$�6DPSOH�$SSOLFDWLRQ,Q�RUGHU�WR�GHPRQVWUDWH�KRZ�:LQGRZV�6RFNHWV�PLJKW�UHDOO\�ZRUN�LQ�D�UHDO�DSSOLFDWLRQ��ZH�GHYHORSHG�:RUP+ROH��:RUP+ROH�LV�D�SHHU�:LQGRZV�6RFNHWV�DSSOLFDWLRQ�ZKLFK�DOORZV�XVHUV�WR�HVWDEOLVK�QHWZRUN��ZRUPKROHV��EHWZHHQ�V\VWHPV�DQG�WKHQ�GUDJ�DQG�GURS�ILOHV�WR�RQH�DQRWKHU��7KH�:RUP+ROH�SURJUDP�LV�D�VLPSOH�0',��PXOWLSOH�GRFXPHQW�LQWHUIDFH��DSSOLFDWLRQ�ZKLFK�UXQV�DV�D����ELW�DSSOLFDWLRQ�RQ�:LQGRZV�����V\VWHPV�ZLWK�D�:LQGRZV�6RFNHWV�FRPSOLDQW�7&3�,3�LPSOHPHQWDWLRQV��:RUP+ROH�FDQ�EH�FRQGLWLRQDOO\�FRPSLOHG�DV�D����ELW�:LQGRZV�17�DSSOLFDWLRQ�ZKLFK�ZLOO�UXQ�RYHU�:LQGRZV�17V����ELW�7&3�,3�WUDQVSRUW�DQG����ELW�:LQGRZV�6RFNHWV�LQWHUIDFH��7KH�PDNHILOH�H[SODLQV�KRZ�WR�FRPSLOH�WKLV�DSSOLFDWLRQ�IRU�:LQGRZV�17�

,Q�RUGHU�WR�GHPRQVWUDWH�DV�PDQ\�:LQGRZV�6RFNHWV�FRQFHSWV�DV�SRVVLEOH��:RUP+ROH�XWLOL]HV�ERWK�VWUHDP�DQG�GDWDJUDP�VRFNHWV��DQG�LV�

Page 47: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 47 of 50

file:C:\TEMP\01becc72.htm 9/3/99

FRPSOHWHO\�HYHQW�GULYHQ��DV\QFKURQRXV���7KLV�DOORZV�D�:RUP+ROH�WR�VLPXOWDQHRXVO\�VHUYLFH�PXOWLSOH�FOLHQW�FRQQHFWLRQV�DQG�DFW�DV�D�:RUP+ROH�FOLHQW���+RVW�ZLQGRZV��DUH�FUHDWHG�ZKHQ�D�XVHU�VSHFLILHV�D�GHVWLQDWLRQ�V\VWHP��HLWKHU�E\�,3�DGGUHVV�RU�KRVWQDPH��WR�FRQQHFW�ZLWK��6SHFLI\LQJ�D�UHPRWH�V\VWHP�GRHV�QRW�HVWDEOLVK�D�QHWZRUN�FRQQHFWLRQ��LW�VLPSO\�FUHDWHV�D�KRVW�ZLQGRZ�RQ�WKH�FOLHQW�WR�SURYLGH�IHHGEDFN�GXULQJ�ILOH�WUDQVIHUV�

�:RUPKROHV���FRQQHFWLRQV��DUH�HVWDEOLVKHG�HYHU\�WLPH�D�XVHU�LQLWLDWHV�D�ILOH�WUDQVIHU�E\�GUDJJLQJ�D�ILOH�IURP�WKH�ILOH�PDQDJHU�LQWR�D�KRVW�ZLQGRZ��:H�UHIHU�WR�WKH�V\VWHP�RQ�ZKLFK�WKLV�KDSSHQV�DV�WKH�:RUP+ROH�FOLHQW��7KH�:RUP+ROH�DSSOLFDWLRQ�LPSOHPHQWV�D�YHU\�VLPSOH�SURWRFRO�ZKLFK�ZRXOG�QRW�EH�HQWLUHO\�XQFRPPRQ�LQ�D�SURGXFWLRQ�HQYLURQPHQW��7KH�ZRUPKROH�VHWXS�WDNHV�SODFH�RYHU�D�VLPSOH�SDLU�RI�GDWDJUDP�IUDPH�WUDQVDFWLRQV��IROORZHG�E\�VWUHDP�FRQQHFWLRQ�HVWDEOLVKPHQW�ZKLFK�IDFLOLWDWHV�WKH�ILOH�WUDQVIHU��7KH�IROORZLQJ�GLDJUDP�LOOXVWUDWHV�WKH�WUDQVDFWLRQV�IRU�FRQQHFWLRQ�HVWDEOLVKPHQW��5HPHPEHU�WKDW�VLQFH�:RUP+ROH�LV�D�SHHU�DSSOLFDWLRQ��HYHU\�LQVWDQFH�RI�:RUP+ROH�RQ�WKH�QHWZRUN�LV�FDSDEOH�RI�DFWLQJ�DV�ERWK�D�:RUP+ROH�FOLHQW�DQG�D�:RUP+ROH�VHUYHU�VLPXOWDQHRXVO\�

7KH�:RUP+ROH�SURWRFRO

7KH�ZRUPKROH�HVWDEOLVKPHQW�EHJLQV�RQ�WKH�FOLHQW�VLGH�E\�VHQGLQJ�D�),/(�IUDPH�GDWDJUDP�ZKLFK�VSHFLILHV�WR�WKH�VHUYHU�WKH�QDPH�RI�WKH�ILOH�WR�WUDQVIHU��WKH�OHQJWK�RI�WKH�ILOH��DQG�D�XQLTXH�WUDQVDFWLRQ�LGHQWLILHU��[LG���7KH�[LG�DOORZV�WKH�VHUYHU�WR�GLVWLQJXLVK�EHWZHHQ�PXOWLSOH�RXWVWDQGLQJ�),/(�UHTXHVWV��7KH�VHUYHU�DFNQRZOHGJHV�WKH�),/(�UHTXHVW�ZLWK�HLWKHU�D�3257�IUDPH�RU�D�1$&.�IUDPH��$�3257�IUDPH�LQIRUPV�WKH�FOLHQW�WKDW�WKH�VHUYHU�ZLOO�DFFHSW�DQ�LQFRPLQJ�ILOH��UHWXUQLQJ�D�VSHFLILHG�VWUHDP�VRFNHW�SRUW�IRU�WKH�FOLHQW�WR�FRQQHFW�WR�DV�ZHOO�DV�WKH�[LG�VSHFLILHG�LQ�WKH�RULJLQDO�UHTXHVW��,I�WKH�VHUYHU�ZLVKHV�WR�UHIXVH�WKH�),/(�UHTXHVW��LW�PD\�UHVSRQG�ZLWK�D�1$&.��QHJDWLYH�DFNQRZOHGJPHQW��IUDPH�ZKLFK�FRQWDLQV�WKH�[LG�LW�LV�UHIXVLQJ�DQG�RSWLRQDOO\�DQ�HUURU�FRGH��IRU�H[DPSOH���LQVXIILFLHQW�GLVN�VSDFH����GXSOLFDWH�ILOHQDPH����

8SRQ�UHFHLSW�RI�D�3257�IUDPH��WKH�FOLHQW�HVWDEOLVKHV�D�VWUHDP�VRFNHW�FRQQHFWLRQ�WR�WKH�VSHFLILHG�SRUW�DQG�EHJLQV�WR�WUDQVIHU�WKH�ILOH��6LQFH�WKH�VHUYHU�LV�OLVWHQLQJ�RQ�D�SRUW�LW�FUHDWHG�LQ�DVVRFLDWLRQ�ZLWK�D�SDUWLFXODU�WUDQVDFWLRQ��DQG�LW�NQRZV�WKH�ILOH�QDPH�DQG�OHQJWK��LW�LV�QRW�QHFHVVDU\�WR�WUDQVIHU�DQ\WKLQJ�DVLGH�IURP�WKH�DFWXDO�ILOH�GDWD��2QFH�WKH�HQWLUH�ILOH�KDV�EHHQ�UHFHLYHG�E\�WKH�VHUYHU��WKH�VWUHDP�FRQQHFWLRQ�LV�VKXW�GRZQ�JUDFHIXOO\�

:RUP+ROH�3URWRFRO�)UDPH�7\SHV�DQG�&RQWHQWV

'DWDJUDP�&RQQHFWLRQ�5HTXHVW 'DWDJUDP�&RQQHFWLRQ�$FNQRZOHGJH 'DWDJUDP�&RQQHFWLRQ�5HIXVH

),/( 3257 1$&.

7UDQVDFWLRQ�,' 7UDQVDFWLRQ�,' 7UDQVDFWLRQ�,'

)LOH�OHQJWK 3RUW�1XPEHU (UURU�FRGH��RSWLRQDO�

Page 48: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 48 of 50

file:C:\TEMP\01becc72.htm 9/3/99

)LOH�QDPH

%HFDXVH�WKH�FRQQHFWLRQ�UHTXHVW��),/(���DFNQRZOHGJPHQW��3257��DQG�UHIXVH��1$&.��IUDPHV�DUH�DOO�WUDQVPLWWHG�RQ�WKH�QHWZRUN�XVLQJ�DQ�XQUHOLDEOH�GDWDJUDP�SURWRFRO��LW�LV�TXLWH�SRVVLEOH�IRU�WKHVH�IUDPHV�WR�EH�ORVW�LQ�WKH�VKXIIOH�RI�QHWZRUN�DFWLYLW\��7KLV�VDLG��WKH�:RUP+ROH�SURWRFRO�DOVR�LPSOHPHQWV�VRPH�UHWU\�WLPHUV�WR�DOORZ�D�FOLHQW�WR�UHWU\�D�IDLOHG�FRQQHFWLRQ�UHTXHVW��$�:RUP+ROH�FOLHQW�ZLOO�UHWU\�D�FRQQHFWLRQ�UHTXHVW�E\�UHWUDQVPLWWLQJ�XS�WR�IRXU�),/(�IUDPHV�WR�WKH�VHUYHU��7R�NHHS�WKLQJV�VLPSOH��WKH�VHUYHU�GRHV�QRW�LPSOHPHQW�D�UHWU\�WLPHU�RQ�SRVVLEOH�ORVW�3257�RU�1$&.�IUDPHV��:H�LQVWHDG�UHO\�RQ�WKH�FOLHQW�WR�UHVHQG�D�),/(�UHTXHVW�LQ�WKH�HYHQW�WKDW�D�3257�IUDPH�JHWV�ORVW�

6LQFH�WKH�VHUYHU�FUHDWHV�D�ORFDO�ZLQGRZ��WUDQVDFWLRQ�DVVRFLDWLRQ��DQG�WKH�OLNH�XSRQ�UHFHLSW�RI�D�),/(�IUDPH��LW�GRHV�PDLQWDLQ�D�WLPHU�SHU�ILOH�WUDQVDFWLRQ�WR�DOORZ�IRU�WKH�FOHDQXS�RI�DFNQRZOHGJPHQW��3257��IUDPHV�ZKLFK�JR�XQDQVZHUHG��)LQDOO\��VLQFH�WKH�ILOH�WUDQVIHU�LWVHOI�WDNHV�SODFH�RYHU�UHOLDEOH�VWUHDP�VRFNHWV��LW�LV�QRW�QHFHVVDU\�WR�LPSOHPHQW�WKHVH�W\SHV�RI�SUHFDXWLRQV�IRU�WKH�DFWXDO�ILOH�WUDQVIHU��:RUP+ROH�VLPSO\�UHOLHV�RQ�WKH�IDLOXUH�RI�WKH�VHQG���DQG�UHFY���$3,V�LQ�WKH�HYHQW�RI�QHWZRUN�RU�FRQQHFWLRQ�SUREOHPV�

:LQGRZV�6RFNHWV�$3,�)XQFWLRQ�2YHUYLHZ6RFNHW�)XQFWLRQV

DFFHSW�� $Q�LQFRPLQJ�FRQQHFWLRQ�LV�DFNQRZOHGJHG�DQG�DVVRFLDWHG�ZLWK�DQ�LPPHGLDWHO\�FUHDWHG�VRFNHW��7KH�RULJLQDO�VRFNHW�LV�UHWXUQHG�WR�WKH�OLVWHQLQJ�VWDWH�

ELQG�� $VVLJQ�D�ORFDO�QDPH�WR�DQ�XQQDPHG�VRFNHW�

FORVHVRFNHW�� 5HPRYH�D�VRFNHW�GHVFULSWRU�IURP�WKH�SHU�SURFHVV�REMHFW�UHIHUHQFH�WDEOH��2QO\�EORFNV�LI�62B/,1*(5�LV�VHW�

FRQQHFW�� ,QLWLDWH�D�FRQQHFWLRQ�RQ�WKH�VSHFLILHG�VRFNHW�

JHWSHHUQDPH�� 5HWULHYH�WKH�QDPH�RI�WKH�SHHU�FRQQHFWHG�WR�WKH�VSHFLILHG�VRFNHW�GHVFULSWRU�

JHWVRFNQDPH�� 5HWULHYH�WKH�FXUUHQW�QDPH�IRU�WKH�VSHFLILHG�VRFNHW�

JHWVRFNRSW�� 5HWULHYH�RSWLRQV�DVVRFLDWHG�ZLWK�WKH�VSHFLILHG�VRFNHW�GHVFULSWRU�

KWRQO�� &RQYHUW�D����ELW�TXDQWLW\�IURP�KRVW�E\WH�RUGHU�WR�QHWZRUN�E\WH�RUGHU�

KWRQV�� &RQYHUW�D����ELW�TXDQWLW\�IURP�KRVW�E\WH�RUGHU�WR�QHWZRUN�E\WH�RUGHU�

LQHWBDGGU�� &RQYHUWV�D�FKDUDFWHU�VWULQJ�UHSUHVHQWLQJ�D�QXPEHU�LQ�WKH�,QWHUQHW�VWDQGDUG����QRWDWLRQ�WR�DQ�,QWHUQHW�DGGUHVV�YDOXH�

LQHWBQWRD�� &RQYHUWV�DQ�,QWHUQHW�DGGUHVV�YDOXH�WR�DQ�$6&,,�VWULQJ�LQ����QRWDWLRQ�L�H���D�E�F�G�

LRFWOVRFNHW�� 3URYLGH�FRQWURO�IRU�GHVFULSWRUV�

OLVWHQ�� /LVWHQ�IRU�LQFRPLQJ�FRQQHFWLRQV�RQ�D�VSHFLILHG�VRFNHW�

QWRKO�� &RQYHUW�D����ELW�TXDQWLW\�IURP�QHWZRUN�E\WH�RUGHU�WR�KRVW�E\WH�RUGHU�

QWRKV�� &RQYHUW�D����ELW�TXDQWLW\�IURP�QHWZRUN�E\WH�RUGHU�WR�KRVW�E\WH�RUGHU�

Page 49: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 49 of 50

file:C:\TEMP\01becc72.htm 9/3/99

UHFY�� 5HFHLYH�GDWD�IURP�D�FRQQHFWHG�VRFNHW�

UHFYIURP�� 5HFHLYH�GDWD�IURP�HLWKHU�D�FRQQHFWHG�RU�XQFRQQHFWHG�VRFNHW�

VHOHFW�� 3HUIRUP�V\QFKURQRXV�,�2�PXOWLSOH[LQJ�

VHQG�� 6HQG�GDWD�WR�D�FRQQHFWHG�VRFNHW�

VHQGWR�� 6HQG�GDWD�WR�HLWKHU�D�FRQQHFWHG�RU�XQFRQQHFWHG�VRFNHW�

VHWVRFNRSW�� 6WRUH�RSWLRQV�DVVRFLDWHG�ZLWK�WKH�VSHFLILHG�VRFNHW�GHVFULSWRU�

VKXWGRZQ�� 6KXW�GRZQ�SDUW�RI�D�IXOO�GXSOH[�FRQQHFWLRQ�

VRFNHW�� &UHDWH�DQ�HQGSRLQW�IRU�FRPPXQLFDWLRQ�DQG�UHWXUQ�D�VRFNHW�GHVFULSWRU�

7KHVH�IXQFWLRQV�PD\�EORFN�LI�DFWLQJ�RQ�D�EORFNLQJ�VRFNHW

'DWDEDVH�)XQFWLRQV

JHWKRVWE\DGGU�� 5HWULHYH�WKH�QDPH�V��DQG�DGGUHVV�FRUUHVSRQGLQJ�WR�D�QHWZRUN�DGGUHVV�

JHWKRVWQDPH�� 5HWULHYH�WKH�QDPH�RI�WKH�ORFDO�KRVW�

JHWKRVWE\QDPH�� 5HWULHYH�WKH�QDPH�V��DQG�DGGUHVV�FRUUHVSRQGLQJ�WR�D�KRVW�QDPH�

JHWSURWRE\QDPH�� 5HWULHYH�WKH�SURWRFRO�QDPH�DQG�QXPEHU�FRUUHVSRQGLQJ�WR�D�SURWRFRO�QDPH�

JHWSURWRE\QXPEHU�� 5HWULHYH�WKH�SURWRFRO�QDPH�DQG�QXPEHU�FRUUHVSRQGLQJ�WR�D�SURWRFRO�QXPEHU�

JHWVHUYE\QDPH�� 5HWULHYH�WKH�VHUYLFH�QDPH�DQG�SRUW�FRUUHVSRQGLQJ�WR�D�VHUYLFH�QDPH�

JHWVHUYE\SRUW�� 5HWULHYH�WKH�VHUYLFH�QDPH�DQG�SRUW�FRUUHVSRQGLQJ�WR�D�SRUW�

7KHVH�IXQFWLRQV�PD\�EORFN�LI�DFWLQJ�RQ�D�EORFNLQJ�VRFNHW

:LQGRZV�6RFNHWV�$V\QFKURQRXV�([WHQVLRQV

:6$$V\QF*HW+RVW%\$GGU��:6$$V\QF*HW+RVW%\1DPH��:6$$V\QF*HW3URWR%\1DPH��:6$$V\QF*HW3URWR%\1XPEHU��:6$$V\QF*HW6HUY%\1DPH��:6$$V\QF*HW6HUY%\3RUW��

$�VHW�RI�IXQFWLRQV�ZKLFK�SURYLGH�DV\QFKURQRXV�YHUVLRQV�RI�WKH�VWDQGDUG�%HUNHOH\�JHW;E\<���IXQFWLRQV��)RU�H[DPSOH��WKH�:6$$V\QF*HW+RVW%\1DPH���IXQFWLRQ�SURYLGHV�DQ�DV\QFKURQRXV�PHVVDJH�EDVHG�LPSOHPHQWDWLRQ�RI�WKH�VWDQGDUG�%HUNHOH\�JHWKRVWE\QDPH���IXQFWLRQ�

:6$$V\QF6HOHFW�� 3HUIRUP�DV\QFKURQRXV�YHUVLRQ�RI�VHOHFW���

:6$&DQFHO$V\QF5HTXHVW�� &DQFHO�DQ�RXWVWDQGLQJ�LQVWDQFH�RI�D�:6$$V\QF*HW;%\<���IXQFWLRQ�

Page 50: Microsoft Developer Network - [InfoViewer Topic]

The Windows Sockets Electronic Discussion List Page 50 of 50

file:C:\TEMP\01becc72.htm 9/3/99

:6$&DQFHO%ORFNLQJ&DOO�� &DQFHO�DQ�RXWVWDQGLQJ��EORFNLQJ��$3,�FDOO�

:6$&OHDQXS�� 6LJQ�RII�IURP�WKH�XQGHUO\LQJ�:LQGRZV�6RFNHWV�'//�

:6$*HW/DVW(UURU�� 2EWDLQ�GHWDLOV�RI�ODVW�:LQGRZV�6RFNHWV�$3,�HUURU

:6$,V%ORFNLQJ�� 'HWHUPLQH�LI�WKH�XQGHUO\LQJ�:LQGRZV�6RFNHWV�'//�LV�DOUHDG\�EORFNLQJ�DQ�H[LVWLQJ�FDOO�IRU�WKLV�WKUHDG�

:6$6HW%ORFNLQJ+RRN�� �+RRN��WKH�EORFNLQJ�PHWKRG�XVHG�E\�WKH�XQGHUO\LQJ�:LQGRZV�6RFNHWV�LPSOHPHQWDWLRQ�

:6$6HW/DVW(UURU�� 6HW�WKH�HUURU�WR�EH�UHWXUQHG�E\�D�VXEVHTXHQW�:6$*HW/DVW(UURU���

:6$6WDUWXS�� ,QLWLDOL]H�WKH�XQGHUO\LQJ�:LQGRZV�6RFNHWV�'//�

:6$8QKRRN%ORFNLQJ+RRN�� 5HVWRUH�WKH�RULJLQDO�EORFNLQJ�IXQFWLRQ�

2EWDLQLQJ�WKH�6SHFLILFDWLRQ

%HIRUH�\RX�JHW�WRR�H[FLWHG�DERXW�ZULWLQJ�D�:LQGRZV�6RFNHWV�DSSOLFDWLRQ��LWV�SUREDEO\�D�JRRG�LGHD�WR�JHW�\RXU�KDQGV�RQ�WKH�VSHFLILFDWLRQ�LWVHOI��7KH�FXUUHQW�YHUVLRQ�RI�WKH�VSHFLILFDWLRQ�LV�����DQG�LW�LV�GLVWULEXWHG�HOHFWURQLFDOO\�RQ�WKH�,QWHUQHW�DQG�&RPSX6HUYH���,I�\RXUH�QRW�DEOH�WR�REWDLQ�WKH�VSHFLILFDWLRQ�HOHFWURQLFDOO\��DVN�D�:LQGRZV�6RFNHWV�YHQGRU²WKH\�DUH�JHQHUDOO\�ZLOOLQJ�WR�SURYLGH�\RX�ZLWK�D�FRS\�RQ�GLVN�

7KH�PRVW�UHFHQW�YHUVLRQV�RI�WKH�VSHFLILFDWLRQ�DUH�DYDLODEOH�YLD�DQRQ\PRXV�)73RQ�UKLQR�PLFURVRIW�FRP�RU�VXQVLWH�XQF�HGX��LQ�WKH�GLUHFWRU\��SXE�PLFUR�SF�VWXII�PV�ZLQGRZV�ZLQVRFN���2Q�&RPSX6HUYH��FKHFN�WKH�0LFURVRIW�6RIWZDUH�/LEUDU\�IRUXP��JR�PVO���$�YDULHW\�RI�GLIIHUHQW�IRUPDWV�DUH�UHDGLO\�DYDLODEOH���GRF��0LFURVRIW�:RUG����ZUL��0LFURVRIW�:LQGRZV�:ULWH����SV��3RVW6FULSW����W[W��$6&,,�WH[W���RU��UWI��5LFK�7H[W�)RUPDW���,Q�DGGLWLRQ�WR�WKH�VSHFLILFDWLRQ��\RX�ZLOO�DOVR�ILQG�-RHO�*ROGEHUJHUV�H[WUHPHO\�XVHIXO�:LQGRZV�6RFNHWV�RQOLQH�KHOS�ILOH��ZLQVRFN�KOS���VDPSOH�DSSOLFDWLRQV�DQG�RWKHU�QLIW\�VWXII�

1RWH�)RU�GHYHORSHUV�IDPLOLDU�ZLWK�WKH�����VSHFLILFDWLRQ��WKH�0LFURVRIW�:RUG�DQG�3RVW6FULSW�YHUVLRQV�RI�WKH�����VSHFLILFDWLRQ�RIIHU��FKDQJH�EDUV��LQ�WKH�OHIW�KDQG�PDUJLQ�WR�GHQRWH�FKDQJHV�PDGH�WR�WKH�����VSHFLILFDWLRQ�

7KH�:LQGRZV�6RFNHWV�(OHFWURQLF�'LVFXVVLRQ�/LVW

,I�\RXUH�LQWHUHVWHG�LQ�:LQGRZV�6RFNHWV��\RXU�FRPPHQWV��H[SHULHQFH�DQG�IHHGEDFN�LV�ZHOFRPH��&XUUHQWO\��WKHUH�LV�DQ�HOHFWURQLF�PDLOLQJ�OLVW�RI�VHYHUDO�KXQGUHG�:LQGRZV�6RFNHWV�GHYHORSHUV��XVHUV�DQG�ZL]DUGV�ZKLFK�RIIHU�WHFKQLFDO�VXSSRUW�DQG�GLVFXVVLRQ�RI�WKH�:LQGRZV�6RFNHWV�$3,��7R�VXEVFULEH��H�PDLO�OLVWVHUY#VXQVLWH�XQF�HGX��LQFOXGLQJ�DV�ERWK�VXEMHFW�DQG�ERG\�WKH�OLQH��68%6&5,%(�:,162&.��\RXU�,QWHUQHW�DGGUHVV!���,I�\RXUH�D�8VHQHW�XVHU��WKH�PDLOLQJ�OLVW�LV�FURVV�SRVWHG�WR�WKH�DOW�ZLQVRFN�QHZVJURXS��,Q�DGGLWLRQ��\RX�DOVR�PLJKW�ZDQW�WR�SHUXVH�WKH�FRPS�SURJUDPPHU�ZLQ����DQG�FRPS�SURWRFROV�WFS�LS�LEPSF�JURXSV�ZKLFK�IUHTXHQWO\�VHH�:LQGRZV�6RFNHWV�UHODWHG�WUDIILF�