76net±ØÓ®¹ÙÍøÊÖ»ú°æ

¹¤ÒµÂ·ÓÉÆ÷

TCPºÍUDPµÄÇø±ðºÍÓÅȱµã

·¢²¼Ê±¼ä£º2020-07-21ä¯ÀÀ£º1917

Ò»¡¢TCPÓëUDPÇø±ð×ܽ᣺


1¡¢TCPÃæÏòÁ¬½Ó£¨Èç´òµç»°ÒªÏȲ¦ºÅ½¨Á¢Á¬½Ó£©;UDPÊÇÎÞÁ¬½ÓµÄ£¬¼´·¢ËÍÊý¾Ý֮ǰ²»ÐèÒª½¨Á¢Á¬½Ó


2¡¢TCPÌṩ¿É¿¿µÄ·þÎñ¡£Ò²¾ÍÊÇ˵£¬Í¨¹ýTCPÁ¬½Ó´«Ë͵ÄÊý¾Ý£¬ÎÞ²î´í£¬²»¶ªÊ§£¬²»Öظ´£¬ÇÒ°´Ðòµ½´ï;UDP¾¡×î´óŬÁ¦½»¸¶£¬¼´²»±£Ö¤¿É¿¿½»¸¶


Tcpͨ¹ýУÑéºÍ£¬ÖØ´«¿ØÖÆ£¬ÐòºÅ±êʶ£¬»¬¶¯´°¿Ú¡¢È·ÈÏÓ¦´ðʵÏÖ¿É¿¿´«Êä¡£È綪°üʱµÄÖØ·¢¿ØÖÆ£¬»¹¿ÉÒÔ¶Ô´ÎÐòÂÒµôµÄ·Ö°ü½øÐÐ˳Ðò¿ØÖÆ¡£


3¡¢UDP¾ßÓнϺõÄʵʱÐÔ£¬¹¤×÷ЧÂʱÈTCP¸ß£¬ÊÊÓÃÓÚ¶Ô¸ßËÙ´«ÊäºÍʵʱÐÔÓнϸߵÄͨÐÅ»ò¹ã²¥Í¨ÐÅ¡£


4.ÿһÌõTCPÁ¬½ÓÖ»ÄÜÊǵ㵽µãµÄ;UDPÖ§³ÖÒ»¶ÔÒ»£¬Ò»¶Ô¶à£¬¶à¶ÔÒ»ºÍ¶à¶Ô¶àµÄ½»»¥Í¨ÐÅ


5¡¢TCP¶Ôϵͳ×ÊÔ´ÒªÇó½Ï¶à£¬UDP¶Ôϵͳ×ÊÔ´ÒªÇó½ÏÉÙ¡£



¶þ¡¢ÎªÊ²Ã´UDPÓÐʱ±ÈTCP¸üÓÐÓÅÊÆ?


UDPÒÔÆä¼òµ¥¡¢´«Êä¿ìµÄÓÅÊÆ£¬ÔÚÔ½À´Ô½¶à³¡¾°ÏÂÈ¡´úÁËTCP,ÈçʵʱÓÎÏ·¡£


£¨1£©ÍøËÙµÄÌáÉý¸øUDPµÄÎȶ¨ÐÔÌṩ¿É¿¿ÍøÂç±£ÕÏ£¬¶ª°üÂʺܵÍ£¬Èç¹ûʹÓÃÓ¦ÓòãÖØ´«£¬Äܹ»È·±£´«ÊäµÄ¿É¿¿ÐÔ¡£


£¨2£©TCPΪÁËʵÏÖÍøÂçͨÐŵĿɿ¿ÐÔ£¬Ê¹ÓÃÁ˸´ÔÓµÄÓµÈû¿ØÖÆËã·¨£¬½¨Á¢ÁË·±ËöµÄÎÕÊÖ¹ý³Ì£¬ÓÉÓÚTCPÄÚÖõÄϵͳЭÒéÕ»ÖУ¬¼«ÄÑ¶ÔÆä½øÐиĽø¡£


²ÉÓÃTCP£¬Ò»µ©·¢Éú¶ª°ü£¬TCP»á½«ºóÐøµÄ°ü»º´æÆðÀ´£¬µÈÇ°ÃæµÄ°üÖØ´«²¢½ÓÊÕµ½ºóÔÙ¼ÌÐø·¢ËÍ£¬ÑÓʱ»áÔ½À´Ô½´ó£¬»ùÓÚUDP¶ÔʵʱÐÔÒªÇó½ÏΪÑϸñµÄÇé¿öÏ£¬²ÉÓÃ×Ô¶¨ÒåÖØ´«»úÖÆ£¬Äܹ»°Ñ¶ª°ü²úÉúµÄÑÓ³Ù½µµ½×îµÍ£¬¾¡Á¿¼õÉÙÍøÂçÎÊÌâ¶ÔÓÎÏ·ÐÔÔì³ÉÓ°Ïì¡£




Èý¡¢UDPºÍTCP±à³Ì²½ÖèÒ²ÓÐЩ²»Í¬£¬ÈçÏ£º


TCP: 


TCP±à³ÌµÄ·þÎñÆ÷¶ËÒ»°ã²½ÖèÊÇ£º 
¡¡¡¡1¡¢´´½¨Ò»¸ösocket£¬Óú¯Êýsocket()£»     SOCKET SocketListen =socket(AF_INET,SOCK_STREAM, IPPROTO_TCP);
¡¡¡¡2¡¢ÉèÖÃsocketÊôÐÔ£¬Óú¯Êýsetsockopt(); * ¿ÉÑ¡ 
¡¡¡¡3¡¢°ó¶¨IPµØÖ·¡¢¶Ë¿ÚµÈÐÅÏ¢µ½socketÉÏ£¬Óú¯Êýbind(); SOCKET_ERROR = bind(SocketListen,(const sockaddr*)&addr,sizeof(addr))
¡¡¡¡4¡¢¿ªÆô¼àÌý£¬Óú¯Êýlisten()£»                 SOCKET_ERROR == listen(SocketListen,2)
¡¡¡¡5¡¢½ÓÊÕ¿Í»§¶ËÉÏÀ´µÄÁ¬½Ó£¬Óú¯Êýaccept()£»    SOCKET SocketWaiter = accept(SocketListen,


                                                  _Out_    struct sockaddr *addr


 _Inout_  int *addrlen);
¡¡¡¡6¡¢ÊÕ·¢Êý¾Ý£¬Óú¯Êýsend()ºÍrecv()£¬»òÕßread()ºÍwrite(); 
¡¡¡¡7¡¢¹Ø±ÕÍøÂçÁ¬½Ó£» closesocket(SocketListen);closesocket(SocketWaiter);
¡¡¡¡8¡¢¹Ø±Õ¼àÌý£» 

SOCK_STREAMÕâÖÖµÄÌØµãÊÇÃæÏòÁ¬½ÓµÄ£¬¼´Ã¿´ÎÊÕ·¢Êý¾Ý֮ǰ±ØÐëͨ¹ýconnect½¨Á¢Á¬½Ó£¬¶øSOCK_DGRAMÕâÖÖÊÇUser Datagram ProtocolЭÒéµÄÍøÂçͨѶ£¬ËüÊÇÎÞÁ¬½ÓµÄ£¬²»¿É¿¿µÄ¡£


TCP±à³ÌµÄ¿Í»§¶ËÒ»°ã²½ÖèÊÇ£º 


¡¡¡¡1¡¢´´½¨Ò»¸ösocket£¬Óú¯Êýsocket()£» 
¡¡¡¡2¡¢ÉèÖÃsocketÊôÐÔ£¬Óú¯Êýsetsockopt();* ¿ÉÑ¡ 
¡¡¡¡3¡¢°ó¶¨IPµØÖ·¡¢¶Ë¿ÚµÈÐÅÏ¢µ½socketÉÏ£¬Óú¯Êýbind();* ¿ÉÑ¡ 
¡¡¡¡4¡¢ÉèÖÃÒªÁ¬½ÓµÄ¶Ô·½µÄIPµØÖ·ºÍ¶Ë¿ÚµÈÊôÐÔ£» 
¡¡¡¡5¡¢Á¬½Ó·þÎñÆ÷£¬Óú¯Êýconnect()£» 
¡¡¡¡6¡¢ÊÕ·¢Êý¾Ý£¬Óú¯Êýsend()ºÍrecv()£¬»òÕßread()ºÍwrite(); 
¡¡¡¡7¡¢¹Ø±ÕÍøÂçÁ¬½Ó£»


int send(
  _In_  SOCKET s,         //ÏòÄĸösocket·¢ËÍ£¬accept·µ»ØµÄsocket¡£
  _In_  const char *buf,
  _In_  int len,
  _In_  int flags
);                               ÓÉÓÚ
send(SocketClient,(const char *)&fh,sizeof(fh),0);

recv(SocketClient,szbuf,sizeof(szbuf),0);



UDP:


ÓëÖ®¶ÔÓ¦µÄUDP±à³Ì²½ÖèÒª¼òµ¥Ðí¶à£¬·Ö±ðÈçÏ£º 
¡¡¡¡UDP±à³ÌµÄ·þÎñÆ÷¶ËÒ»°ã²½ÖèÊÇ£º 
¡¡¡¡1¡¢´´½¨Ò»¸ösocket£¬Óú¯Êýsocket()£» 
¡¡¡¡2¡¢ÉèÖÃsocketÊôÐÔ£¬Óú¯Êýsetsockopt();* ¿ÉÑ¡ 
¡¡¡¡3¡¢°ó¶¨IPµØÖ·¡¢¶Ë¿ÚµÈÐÅÏ¢µ½socketÉÏ£¬Óú¯Êýbind(); 
¡¡¡¡4¡¢Ñ­»·½ÓÊÕÊý¾Ý£¬Óú¯Êýrecvfrom(); 
¡¡¡¡5¡¢¹Ø±ÕÍøÂçÁ¬½Ó£» 


UDP±à³ÌµÄ¿Í»§¶ËÒ»°ã²½ÖèÊÇ£º 
¡¡¡¡1¡¢´´½¨Ò»¸ösocket£¬Óú¯Êýsocket()£» 
¡¡¡¡2¡¢ÉèÖÃsocketÊôÐÔ£¬Óú¯Êýsetsockopt();* ¿ÉÑ¡ 
¡¡¡¡3¡¢°ó¶¨IPµØÖ·¡¢¶Ë¿ÚµÈÐÅÏ¢µ½socketÉÏ£¬Óú¯Êýbind();* ¿ÉÑ¡ 
¡¡¡¡4¡¢ÉèÖöԷ½µÄIPµØÖ·ºÍ¶Ë¿ÚµÈÊôÐÔ; 
¡¡¡¡5¡¢·¢ËÍÊý¾Ý£¬Óú¯Êýsendto(); 
¡¡¡¡6¡¢¹Ø±ÕÍøÂçÁ¬½Ó£»




int recvfrom(
  _In_         SOCKET s,       //°ó¶¨µÄsocket
  _Out_        char *buf,
  _In_         int len,
  _In_         int flags,
  _Out_        struct sockaddr *from,  //ÓÃÀ´½ÓÊÕ¶Ô·½µÄ
  _Inout_opt_  int *fromlen
);
int nres=recvfrom(pThis->m_socketListen,szBuf,sizeof(szBuf),0,(sockaddr*)&addrClient,&nSize);//0´¦±ê־λ
sendto(m_socketListen,szBuffer,nSize,0,(const sockaddr*)&addr,sizeof(sockaddr_in))
TCPºÍUDPÊÇOSIÄ£ÐÍÖеÄÔËÊä²ãÖеÄЭÒé¡£TCPÌṩ¿É¿¿µÄͨÐÅ´«Ê䣬¶øUDPÔò³£±»ÓÃÓÚÈù㲥ºÍϸ½Ú¿ØÖƽ»¸øÓ¦ÓõÄͨÐÅ´«Êä¡£


4¡¢½«socketÉèÖÃΪ¹ã²¥ÊôÐÔ
bool optval=true;
setsockopt(m_socketListen,SOL_SOCKET,SO_BROADCAST,(const char *)&optval,sizeof(bool));


5¡¢½«SocketÉèÖÃΪ·Ç×èÈû¡£
//bool benable=true;
//ioctlsocket(m_socketListen,FIONBIO,(u_long*)&benable);


6¡¢TcpÍ·£¬20×Ö½Ú


211656003971.png

7¡¢UDPÊײ¿,8¸ö×Ö½Ú

211656229818.png


ÉÏһƪ£ºÒ»Îĸ㶮TCPÓëUDPÓÐÊ²Ã´Çø±ð ÏÂһƪ£ºÊ²Ã´ÊÇLoRaЭÒ飿
Ãâ·ÑÑù»úÉêÇë Ñù»úÃâ·ÑÊÔÓã¬Ìáǰ¹µÍ¨È·±£76net±ØÓ®¹ÙÍøÊÖ»ú°æ²úÆ·Éî¶ÈÆõºÏ¹ó˾ҵÎñÐèÇó
  • *ÄúµÄÐÕÃû£º
  • *ÊÖ»úºÅÂ룺
  • *¹«Ë¾Ãû³Æ£º
  • ÄúµÄְλ£º
  • ÄúµÄÓÊÏ䣺
  • ÄúµÄQQ£º
Ïà¹Ø²úÆ·
²úÆ·°Ù¿Æ
Òþ˽Õþ²ßÍøÕ¾µØÍ¼ Copyright ? 2015-2022 ÏÃÃÅ76net±ØÓ®¹ÙÍøÊÖ»ú°æÍ¨ÐſƼ¼ÓÐÏÞ¹«Ë¾ All Rights Reserved. ¡¡ ÃöICP±¸15018514ºÅ
ÔÚÏß×Éѯ ²¦´òµç»°
sitemap¡¢ÍøÕ¾µØÍ¼