Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Linuxϵͳµ÷Óà recv/recvfrom/recvmsgº¯ÊýÏê½â

¡¾recv/recvfrom/recvmsgϵͳµ÷Óá¿ 
¹¦ÄÜÃèÊö£º
´ÓÌ×½Ó×ÖÉϽÓÊÕÒ»¸öÏûÏ¢¡£¶ÔÓÚrecvfrom ºÍ recvmsg£¬¿ÉͬʱӦÓÃÓÚÃæÏòÁ¬½ÓµÄºÍÎÞÁ¬½ÓµÄÌ×½Ó×Ö¡£recvÒ»°ãÖ»ÓÃÔÚÃæÏòÁ¬½ÓµÄÌ×½Ó×Ö£¬¼¸ºõµÈͬÓÚrecvfrom£¬Ö»Òª½«recvfromµÄµÚÎå¸ö²ÎÊýÉèÖÃNULL¡£
Èç¹ûÏûϢ̫´ó£¬ÎÞ·¨ÍêÕû´æ·ÅÔÚËùÌṩµÄ»º³åÇø£¬¸ù¾Ý²»Í¬µÄÌ×½Ó×Ö£¬¶àÓàµÄ×ֽڻᶪÆú¡£
¼ÙÈçÌ×½Ó×ÖÉÏûÓÐÏûÏ¢¿ÉÒÔ¶ÁÈ¡£¬³ýÁËÌ×½Ó×ÖÒѱ»ÉèÖÃΪ·Ç×èÈûģʽ£¬·ñÔò½ÓÊÕµ÷ÓûáµÈ´ýÏûÏ¢µÄµ½À´¡£
Ó÷¨£º
#include <sys/types.h>
#include <sys/socket.h>
ssize_t recv(int sock, void *buf, size_t len, int flags);
ssize_t recvfrom(int sock, void *buf, size_t len, int flags,
     struct sockaddr *from, socklen_t *fromlen);
ssize_t recvmsg(int sock, struct msghdr *msg, int flags);
²ÎÊý£º  
sock£ºË÷Òý½«Òª´ÓÆä½ÓÊÕÊý¾ÝµÄÌ×½Ó×Ö¡£
buf£º´æ·ÅÏûÏ¢½ÓÊÕºóµÄ»º³åÇø¡£
len£ºbufËùÖ¸»º³åÇøµÄÈÝÁ¿¡£
flags£ºÊÇÒÔÏÂÒ»¸ö»òÕß¶à¸ö±êÖ¾µÄ×éºÏÌ壬¿Éͨ¹ýor²Ù×÷Á¬ÔÚÒ»Æð
MSG_DONTWAIT£º²Ù×÷²»»á±»×èÈû¡£
MSG_ERRQUEUE£º ָʾӦ¸Ã´ÓÌ×½Ó×ֵĴíÎó¶ÓÁÐÉϽÓÊÕ´íÎóÖµ£¬ÒÀ¾Ý²»Í¬µÄЭÒ飬´íÎóÖµÒÔijÖÖ¸¨×ôÐÔÏûÏ¢µÄ·½Ê½´«µÝ½øÀ´£¬ ʹÓÃÕßÓ¦¸ÃÌṩ×ã¹»´óµÄ»º³åÇø¡£µ¼Ö´íÎóµÄÔ­·â°üͨ¹ýmsg_iovec×÷Ϊһ°ãµÄÊý¾ÝÀ´´«µÝ¡£µ¼Ö´íÎóµÄÊý¾Ý±¨Ô­Ä¿±êµØÖ·×÷Ϊmsg_name±»Ìṩ¡£ ´íÎóÒÔsock_extended_err½á¹¹ÐÎ̬±»Ê¹Ó㬶¨ÒåÈçÏÂ
#define SO_EE_ORIGIN_NONE    0
#define SO_EE_ORIGIN_LOCAL   1
#define SO_EE_ORIGIN_ICMP    2
#define SO_EE_ORIGIN_ICMP6   3
struct sock_extended_err
{
    u_int32_t ee_errno;   /* error number */
    u_int8_t ee_origin; /* where the error originated */
    u_int8_t ee_type;    /* type */
    u_int8_t ee_code;    /* code */
    u_int8_t ee_pad;
    u_int32_t ee_info;    /* additional information */
    u_int32_t ee_data;    /* other data */
    /* More data may follow */
};
MSG_PEEK£ºÖ¸Ê¾Êý¾Ý½ÓÊÕºó£¬ÔÚ½ÓÊÕ¶ÓÁÐÖÐ


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨ËÄ£© L2CAP²ã±à³Ì

£¨L2CAPЭÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPЭÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼­Á¬½Ó¿ØÖƺÍÊÊÅäЭÒé (L2CAP) ΪÉϲãЭÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àЭÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãЭÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......

ʵսLinux Bluetooth±à³Ì (Æß) SDPЭÒé

Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖЭÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀЭÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......

4.1. Introduction to Linux Routing


4.1. Introduction to Linux Routing
The design of IP routing allows for very simple route definitions for small networks, while not hindering the flexibility of routing in complex environments. A key concept in IP routing is the ability to define what addresses are locally reachable as oppose ......

Linux×öÒ»¸ö¹¦ÄÜÍ걸µÄ·ÓÉÆ÷

±¾ÎÄÖ÷Òª½éÉÜÈçºÎÓÃLinux×öÒ»¸ö¹¦ÄÜÍ걸µÄ·ÓÉÆ÷£¬ÕâÀォÖ÷Òª½éÉܾ²Ì¬Â·ÓÉÆ÷ºÍ¶¯Ì¬Â·ÓÉÆ÷µÄÅäÖ㬵«²»°üÀ¨IPαװ»òÕß˵¹«ÓÃÒ»¸öIPµØÖ··ÃÎÊÍâÃæÍøÂçµÈÎÊÌâ¡£ÆäÒѾ­²»ÊôÓÚ±¾Ö÷ÌâÌÖÂ۵ķ¶Î§£¬Çë²Î¿¼ÆäËûÈç·À»ðǽµÄÅäÖõȵÄÄÚÈÝ¡£
LRP(Linux Router Project)ÒѾ­³ÉÁ¢ÁËÓкü¸ÄêµÄʱ¼äÁË¡£Õâ¸ö¼Æ»®µÄÄ¿µÄÊÇÀûÓÃLinux²Ù×÷ϵͳ½«À ......

Linux·¢ËÍarpÇëÇóÓë½ÓÊÕarpÏìÓ¦

Linux ÖлñµÃ±¾»úÍø¿¨MACµØÖ·ºÜ¼òµ¥£¬ioctl()¾ÍOK¡£¿ÉÈçºÎ»ñµÃ¾ÖÓòÍøÆäËûÖ÷»úµÄMACµØÖ·ÄØ…Á´Â·²ã¹ã²¥ARPÇëÇó£¬È»ºó½ÓÊÕARPÏìÓ¦¡£ÊµÏÖ½é¸ö¹¦ÄÜÆäʵÒÑÓÐÏÖ³ÉÈý·½¿â¿ÉÓã¬Èçlibnet¡£²»¹ýÏë¼ÓÉî¶ÔЭÒéµÄÀí½âºÍLinuxÍøÂç±à³ÌAPIµÄÀí½â£¬jiayi »¹ÊǾö¶¨ÓÃLinuxµÄPF_PACKET×Ô¼ºÊµÏÖ£¬¸Ä°¡¸Ä£¬ÖÕÓڳɹ¦¡«ÒÔÏÂÊÇ´óÌå˼·
1. ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ