?aòa: ±????ù?Y×÷???úê1ó??????úTCP/IP?a·?°?1y3ì?D???-?é?ééüá??????úTCP/IP?a·?°???ó?í???è?o??????????úTCP/IP?a·?°???è?o?ê1ó?TCP/IP?a·?°???DDD????????a·?????óúDèòaê????????úTCP/IP??ê???3??§??à'??óDò??¨???è??òaò???
1??ü'ê: ?????ú??TCP/IP???a·?°????§?°°????????úé?í???
1 òy ??
?????úTCP/IP?a·?°??¨?ò3????a?????úTCP/IP?§?°°???ê??aìá1?ó??§?§?°?????úTCP/IPD-òé????ê???'ó??éè??×??o???ùóú?????úTCP/IP??????ìá1???ò????a·?°???
?ú?±??D???ê±'ú???????ú??áaí?ò??-?y?y??1y?é??á???è?ê?éè±???áaí???áaí???ê??í2???2?ìá??D-òé?????a?íDèòa?ú??è?ê?éè±?é?ê?????è?ê?TCP/IPD-òé??????óú????????è?ê?CPU???éò???DDLinux?è2ù×÷??í3ê?????è?ê?TCP/IPD-òé???à??±è??èYò×????ê???51?????ú??AVR?????ú??PIC?????úé?ê???TCP/IPD-òé???í±è???'?ó??òò?aTCP/IPD-òé????CPU ???ù?è???ú'???o?òa?ó±è??????
óúê??ú?????úé?ê???TCP/IPD-òé????è?1?íêè?'óí·?aê?ê??????òDèòa???????????ê??ê???????óú?????úé?í????????a·?ê?ò???????oí??????óúê??íDèòa?????úTCP/IP?a·?°???±????÷òaò?51?????úé???TCP/IPD-òé???aày??
2 ?????úTCP/IP?a·?°???ó?í?
???°?????úé?í???ê?ê?ò???èè????ê???oü?à??D??§éú????ó?'??à1???±?ò?éè????í?ê±??D?ò2óDó?'??à1??????????aá??ì?ùê????????úTCP/IP???éò?í¨1yê1ó??????úTCP/IP?a·?°?à'ê?????ò?°?ò????????úTCP/IP?a·?°?Dèòa°üo?è??????úèY?o
1?? ?????úTCP/IPD-òé???oó??§?éò??ù?YD-òé??ìá1???ó??§?ó?úà'ê???TCP??·??eá??ó???óêüá??ó??·??íêy?Y???óê?êy?Y??1?±?á??ó?è2ù×÷??×?o?ê???D-òé???ü1???èYBSD socket?ó?ú??
2?? ó2?t???·°??°???à1?á??ó???oó?'?ó2?t?éò??¨á???è?ê?TCP/IPê??é?·?3??
3?? ó2?t?-àíí??o?a?éò?·?±?ó??§???à1?ó2?t??3é??×??o?????·°??D??
4?? ??ì×?a·?1¤???o?ú??è?ê?TCP/IPê??é?·?3?D±?D?òaóDPC?ú????èí?t??ó?ò?oí?a·?°???DDí¨D???
3 è?o??????????úTCP/IP?a·?°?
3. 1 ?÷àà?a·?°?
???°?????úTCP/IPò?°?óD???ò16??oí32?????????ú???????ò8???????ú???????ò51?????ú??ZLIP?è?????°51?????úé???TCP/IPD-òé??ò?uIPoíZLIP?a?÷?????°uIP??×???°?±??aV1.0??ZLIP??×???°?±??aZLIP????°?V1.0??
êD??é????a·?°?óD??±±????×ó?Tó?í???51?????úTCP/IPé?í??a·?°???é?o?×?á°??51?????úTCP/IP?a·?°??è??
3. 2 ????×?òaê???
×÷?a?????úé?í???ê??§?°????????ò???o?êê???a·?°???óú?§?°ê?ê?°?1|±??????????a·?°?ê±ó|??×?òaò????êìa?o
1?? ??????????TCP/IP?a·?°???×??÷òa?????÷?úóúTCP/IPD-òé??±?éí??ó2?t??3é±??éò?×???oü?í???ùò?2?òaòò?a?í????o???á?o?D?èí?t????óúTCP/IPD-òé???éò?'óè???·????????o
a) ?è?¨D??oéì?òìá1???TCP/IPD-òé??ê?·?óDè?????2aê???ê?·??úá?D?PING???é????2???????ê?·??ú·??í?óêü'óêy?Yá??¨àyè?10Mò?é???ê±2??aê§è?o?×??ú????óúê1ó???à'??è?1?D-òé??2??è?¨?????'??óú???????3à??a·???'?à'oü'ó?é·3??
b) ò×ó?D??oê1ó??????úTCP/IP?a·?°???ó??§ò?°?????óú??è?ê?TCP/IP??ê1ó?2?ì?á??a???a?íDèòa?a·?°?ìá1??ü?óíêé???×êá?oíê1ó?ê?2á??°üà¨o?êy?¨ò????ü?à??ày×ó3ìDò?è??
c) 3§?ò????ê??o?3D?3§?ò??ê?·??°??è????a·?°???ó??§?úê1ó??Dó??????êìa?ù±??T·¨??óú?a'e???a?íDèòaó??§?ê??3t??D-òé??ê?·?ê?3§?ò×??oéè??????
2?? ía°ü×°oí?êá?±??¤?oía°ü×°2?o??éê?ê1??ó??§ê???ê±???a·?°?ò??-?ú??ê?1y3ì?Dêü?e???T·¨ê1ó???
4 ê1ó?TCP/IP?a·?°?
?????ééüè?o?ê1ó?TCP/IP?a·?°?à'??DD?????a·???
4. 1 ?a·?°?ì×?t
4. 2 ?a·?°?2??t
ò????a·?°?±?éíê?ò????????ú??í3??°üo?óDCPU??RAM?????'???é??í??????é??í??????éóDoü?à???????aà?ò?RTL8019AS?aàyà'???÷????óúía2??ó?ú??×??÷òa??ê??o?áí????ó?úoí?a'??ú???ü??ê??a·?°?oíPCá??ó???ó?ú??
4. 3 ?¨á??a·??·?3
?¨á??????úTCP/IP?a·??·?3??2??èóDè?????2??o
1?? á????oá???ê????a·?°?ó?PC?ú??'??úá??ó?????a·?°?é?????è?oó???a·?°?á??ó??oíPC?úí?ò???í????D??
2??
°2×°èí?t?oDèòa°2×°?a·?°???±àò??·?3????óú51?????ú??ò?°???ó? KeilC51
3?? 2aê?á??ó?oò?°??éò?í¨1yPING?üá???àyè?ping 192.168.0.2 ¨Ctà'2aê??a·?°?oíPC?ú??í???ê?·?'|óúá?í¨×'ì???
4. 3 ?a·??ùóú?a·?°???D?3ìDò
?aà??ééüè?o??ú2?DT???a·?°?ó2?t???ù'?é????a·?×??o???????úTCP/IP3ìDò???a·?D?3ìDò?íê??ú?a·?°?ìá1???TCP/IPD-òé?????ù'?é??a·?ó|ó?2???D-òé??óéóúTCP2?oíIP2???ò??-ìá1????ùò?ó??§2?ó????????D????DD?ú????TCP/IPD-òé??ò?°??aó??§ìá1?è??????ó?ú?o
1?? 3?ê???D-òé??oíêí·?D-òé????o?êy?ó?ú??àà??Init(), Release()??àà??o?êy??
2?? ìá1?àà??BSD socket??socket, sendto, recvfro, connect, bind, listen, accept, send, recv, closesocket, shutdown, getpeername, getsockname, htonl, htons, ntohl, ntohs, inet_addr,inet_ntoa,ioctlsocket,setsockopt, getsockopt,select?èAPIo?êy??ó??§?÷ó?'?àào?êy??DD·??eá??ó???óêüá??ó??·??íêy?Y???óê?êy?Y??1?±?á??ó?è2ù×÷??
3?? ?óêüá??ó???óê?êy?Y??±???1?±???'|àí?oóéóú'?àà2ù×÷ê?é????ú·??e?????ùò?TCP/IPD-òé??±?D?ìá1?ò?ì×?ú??à''|àí'?ààê??t??·?éú??ò?°?à'??óDá???·?·¨?o
a) ?÷???è'y?oàyè?ê1ó?BSD??recv()o?êy?è'yêy?Y????à'??
b) ???÷?ú???o2éó?àà??MFC??OnReceive()o?êy?????÷?ú????ò2?'ê????ú?óê???êy?Y??ê±oò?á×????÷ó?OnReceive()o?êy??
???'ó??§è?o?ê1ó?ò?é????ó?úà'ê?????3ì????????3ìêy?Y2é??????·?·¨oü?ò????
àyè????úDèòaê???ò?????LED????ááoí?e????3ì????ó|ó???ê×?èPC?úê1ó?TCP/IP·??í1¤??àyè?SocketDlgTest3ìDò·??íò???×??ú???°1?±???a·?°??¨?ù?Y?a·?°???IP???··??í?????a·?°??úOnReceiveo?êy?D·???ê?????ê??°1?±?????'?íí¨1yP1???ú????'ò?a??·'??è?1?ê?????ê??°0?±?ò?????¨?e??
è?1?ê?ê???ò?????3ìêy?Y2é????ó|ó???àyè??¨ê±??DD???è2é????ê×?èPC?úê1ó?SocketDlgTest3ìDò?è'y·?à'êy?Y???a·?°?????ò???ê±??2é??ò???êy?Y??è?oóí¨1ysend()o?êy??êy?Y·??í??PC?ú?¨?ù?YPC?ú??IP???··??í?????a?ùPC?í?óê???á??±?°????3ì???èêy?Y??
4. 3 ?a·??ùóúD?ó2?t??3ìDò
í¨1y?°?a·??ùóú?a·?°???D?3ìDò?±ò??ú???ééüoó???a·??ùóúD?ó2?t??3ìDò?í?à??èYò×á????a??òa?ù?Y?????úTCP/IP?a·?°??àó|??ó2?t?÷??í¨1y?????ú?????????úàyè?P1??DD?????ò??êy?Y2é???'?é??