LinuxÍøÂçÐÒéÕ»(Ò»)——SocketÈëÃÅ(1)
1¡¢TCP/IP²Î¿¼Ä£ÐÍ
ΪÁËʵÏÖ¸÷ÖÖÍøÂçµÄ»¥Á¬£¬¹ú¼Ê±ê×¼»¯×éÖ¯(ISO)ÖÆ¶¨ÁË¿ª·Åʽϵͳ»¥Á¬(OSI)²Î¿¼Ä£ÐÍ¡£¾¡¹ÜOSIµÄÌåϵ½á¹¹´ÓÀíÂÛÉϽ²ÊDZȽÏÍêÕûµÄ£¬µ«Êµ¼ÊÉÏ£¬ÍêÈ«·ûºÏOSI¸÷²ãÐÒéµÄÉÌÓòúÆ·È´ºÜÉÙ½øÈëÊг¡¡£¶øÊ¹ÓÃTCP/IP ÐÒéµÄ²úÆ·È´´óÁ¿Ó¿ÈëÊг¡£¬¼¸ºõËùÓеŤ×÷Õ¾¶¼ÅäÓÐTCP/IPÐÒ飬ʹµÃTCP/IP ³ÉΪ¼ÆËã»úÍøÂçµÄʵ¼ÊµÄ¹ú¼Ê±ê×¼¡£
2¡¢Ì×½Ó×Ö(socket)
socketÊDzÙ×÷ϵͳµÄÖØÒª×é³É²¿·ÖÖ®Ò»£¬ËüÊÇÍøÂçÓ¦ÓóÌÐòµÄ»ù´¡¡£´Ó²ã´ÎÉÏÀ´Ëµ£¬ËüλÓÚÓ¦Óò㣬ÊDzÙ×÷ϵͳΪӦÓóÌÐòÔ±ÌṩµÄAPI£¬Í¨¹ýËü£¬Ó¦ÓóÌÐò¿ÉÒÔ·ÃÎÊ´«Êä²ãÐÒé¡£
1¡¢socket λÓÚ´«Êä²ãÐÒéÖ®ÉÏ£¬ÆÁ±ÎÁ˲»Í¬ÍøÂçÐÒéÖ®¼äµÄ²îÒ죻
2¡¢socketÊÇÍøÂç±à³ÌµÄÈë¿Ú£¬ËüÌṩÁË´óÁ¿µÄϵͳµ÷Ó㬹¹³ÉÁËÍøÂç³ÌÐòµÄÖ÷Ì壻
3¡¢ÔÚLinuxϵͳÖУ¬socketÊôÓÚÎļþϵͳµÄÒ»²¿·Ö£¬ÍøÂçͨÐÅ¿ÉÒÔ±»¿´×÷ÊǶÔÎļþµÄ¶ÁÈ¡£¬Ê¹µÃÎÒÃǶÔÍøÂçµÄ¿ØÖƺͶÔÎļþµÄ¿ØÖÆÒ»Ñù·½±ã¡£
2.1¡¢Ì×½Ó×ÖµØÖ·
ÔÚ´«Êä²ãÉÏ£¬Í¨ÐŶ˵ã¿ÉÓÉInternetÉÏ3¸ö²ÎÊýÃèÊö£ºËùÓõÄÐÒé¡¢IPµØÖ·ºÍ¶Ë¿ÚºÅ¡£ÕâЩÄÚÈÝÓÉsockaddrÃèÊö£º
//usr/include/sys/socket.h
typedef unsigned short sa_family_t;
//ͨÓÃsocketµØÖ·
struct sockaddr {
sa_family_t sa_family; /* address family, AF_xxx,ÐÒé´Ø*/
char sa_data[14]; /* 14 bytes of protocol address */
};
//usr/include/netinet/in.h
//INETµØÖ·´ØµÄsocketµØÖ·
struct in_addr {
__u32 s_addr;
};
struct sockaddr_in {
sa_family_t sin_family; /* Address family: AF_INET */
unsigned short int sin_port; /* Port number,¶Ë¿Ú*/
 
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
ѧϰLinuxϵͳµÄʮһµã½¨Òé
2007.06.12 À´×Ô£ºlingfen1552.cublog.c¡¡ [Êղص½ÎÒµÄÍøÕª]
Ëæ×ÅLinuxÓ¦ÓõÄÀ©Õ¹Ðí¶àÅóÓÑ¿ªÊ¼½Ó´¥Linux£¬¸ù¾ÝѧϰWindwosµÄ¾ÑéÍùÍùÓÐһЩãȻµÄ¸Ð¾õ£º²»Öª´ÓºÎ´¦¿ªÊ¼Ñ§Æð¡£ÈçºÎµÃµ½Áª»ú°ïÖúºÍ˽ÓвÙ×÷ϵͳ²»Í¬£¬¸÷¸öLinuxµÄ·¢Ðа汾µÄ¼¼ÊõÖ§³ÖÊ ......
LinuxÖеĵØÖ·¿Õ¼ä
ÓÐÕâôһϵÁеÄÎÊÌ⣬ÊÇ·ñÔÚÀ§ÈÅ×ÅÄ㣺Óû§³ÌÐò±àÒëÁ¬½ÓÐγɵĵØÖ·¿Õ¼äÔÚʲô·¶Î§ÄÚ£¿Äں˱àÒëºóµØÖ·¿Õ¼äÔÚʲô·¶Î§ÄÚ£¿Òª¶ÔÍâÉè½øÐзÃÎÊ£¬I/OµÄµØÖ·¿Õ¼äÓÖÊÇʲôÑùµÄ£¿
ÏȻشðµÚÒ»¸öÎÊÌâ¡£Linux×î³£¼ûµÄ¿ÉÖ´ÐÐÎļþ¸ñʽΪelf(Executable and Linkable Format)¡£ÔÚelf¸ñʽµÄ¿ÉÖ´ÐдúÂëÖУ¬ld×ÜÊÇ´Ó0x ......
Ò»¡¢ Í·Îļþ 1 ¡°¡±ÖеÄÍ·Îļþ£¬ÔÚÔ´Îļþµ±Ç°Ä¿Â¼²éÕÒ 2 -I ÖÐÖ¸¶¨Ä¿Â¼ 3 gccµÄ»·¾³±äÁ¿ C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, OBJC_INCLUDE_PATH 4 ±àÒëÆ÷Ô¤Éè·¾¶¡¢ÄÚ¶¨Ä¿Â¼£º /usr/include /usr/local/include /usr/lib/gcc-lib/i386-linux/2.95.2/include /usr/lib/gcc-lib/i386-linux/2.95.2/../../../.. ......