»ùÓÚLinuxµÄSocketÍøÂç±à³ÌµÄÐÔÄÜÓÅ»¯
»ùÓÚLinuxµÄSocketÍøÂç±à³ÌµÄÐÔÄÜÓÅ»¯
2009-10-23 ǶÈëʽÔÚÏß ÊÕ²Ø | ´òÓ¡
1 ÒýÑÔ
Ëæ×ÅIntenetµÄÈÕÒæ·¢Õ¹ºÍÆÕ¼°£¬ÍøÂçÔÚǶÈëʽϵͳÖÐÓ¦Ó÷dz£¹ã·º£¬Ô½À´Ô½¶àµÄǶÈëʽÉ豸²ÉÓÃLinux²Ù×÷ϵͳ¡£LinuxÊÇÒ»¸öÔ´´úÂ빫¿ªµÄÃâ·Ñ²Ù×÷ϵͳ£¬¾ßÓÐÇ¿ÒÆÖ²ÐÔ£¬ËùÒÔ¶Ô»ùÓÚLinuxµÄSocketÍøÂç±à³ÌµÄÑо¿Ô½À´Ô½ÖØÒª¡£
Socketʵ¼ÊÊÇÍøÂç´«Êä²ã¹©¸øÓ¦ÓòãµÄ±à³Ì½Ó¿Ú¡£´«Êä²ãÔòÔÚÍøÂç²ãµÄ»ù´¡ÉÏÌṩ½ø³Ìµ½½ø³ÌÎʵÄÂ߼ͨµÀ£¬¶øÓ¦ÓòãµÄ½ø³ÌÔòÀûÓô«Êä²ãÏòÁíһ̨Ö÷»úµÄijһ½ø³ÌͨÐÅ¡£Socket¾ÍÊÇÓ¦ÓòãÓë´«Êä²ãÖ®¼äµÄÇÅÁº¡£Èçͼ2Ëùʾ¡£
ʹÓÃSocket±à³Ìʱ¿ÉÒÔ¿ª·¢¿Í»§»úºÍ·þÎñÆ÷Ó¦ÓóÌÐò£¬ËüÃÇ¿ÉÒÔÔÚ±¾µØÍøÂçÉϽøÐÐͨÐÅ£¬Ò²¿ÉÒÔͨ¹ýInternetÔÚÈ«Çò·¶Î§ÄÚ½øÐÐͨÐÅ¡£±àд²¢ÔËÐÐ SocketµÄ¿Í»§¶ËºÍ·þÎñÆ÷¶Ë³ÌÐò£¬Ë«·½Í¨¹ýÌ×½Ó×Ö½¨Á¢ÁË·þÎñÁ¬½ÓÇëÇ󣬲¢ÇÒͨ¹ýһЩ·½·¨Ìá¸ßSocketµÄÐÔÄÜ¡£
3 Socket±à³Ì
3£®1 SocketÀàÐÍ
³£¼ûµÄSocketÓÐ3ÖÖÀàÐÍ£º
(1)Á÷ʽSocket(SOCK_STREAM)ËüÌṩ¿É¿¿µÄͨÐÅÁ÷£¬Ê¹ÓÃÃæÏòÁ¬½ÓµÄTCPÐÒ飬´Ó¶ø±£Ö¤Êý¾Ý´«ÊäµÄÕýÈ·ÐÔºÍ˳ÐòÐÔ£º
(2)Êý¾Ý±¨Socket(SOCK_DGRAM)Êý¾Ýͨ¹ýÏ໥¶ÀÁ¢µÄ±¨ÎĽøÐд«Ê䣬ÊÇÎÞÐòµÄ£¬²¢ÇÒ²»±£Ö¤¿É¿¿£¬ÎÞ²î´í£¬Ëü¶¨ÒåÒ»ÖÖÃæÏòÎÞÁ¬½ÓµÄ·þÎñ£¬Ê¹ÓÃÊý¾Ý±¨ÐÒéUDP£»
(3)ÔʼSocket(SOCK_RAM)ËüÔÊÐíÖ±½Ó·ÃÎʵײãÐÒ飬¹¦ÄÜÇ¿´óµ«Ê¹ÓýÏΪ²»±ã£¬Ö÷ÒªÓÃÓÚһЩÐÒéµÄ¿ª·¢¡£±¾±àдµÄSocketÊôÓÚÁ÷ʽSocket¡£
3£®2 Socket±à³ÌÁ÷³Ì
Socket±à³Ì²ÉÓÿͻ§£¯·þÎñÆ÷ģʽ¡£Òò´Ë±à³Ì·ÖΪ·þÎñÆ÷¶ËºÍ¿Í»§¶ËÁ½²¿·Ö¡£
ÿһ¸öSocket¶¼ÓÃÒ»¸ö°ëÏà¹ØÃèÊö(ÐÒ飬±¾µØµØÖ·£¬±¾µØ¶Ë¿Ú)À´±íʾ£¬SocketÒ²ÓÐÒ»¸öÀàËÆÓÚÎļþ´ò¿ªµÄº¯Êý£¬¸Ãº¯Êý·µ»ØÒ»¸öÕûÐ͵ÄSocketÃèÊö·û£¬Ëæºó½¨Á¢Á¬½Ó£¬Êý¾Ý´«ÊäµÈ²Ù×÷¶¼Í¨¹ýSocketÀ´ÊµÏÖ¡£
±à³ÌÁ÷³ÌÈçÏ£º·þÎñÆ÷¶ËÊ×ÏȽ¨Á¢Socket£¬·µ»Ø¸ÃSocketµÄÃèÊö·û£ºÅäÖÃSocketµÄ¶Ë¿ÚºÍIPµØÖ·£»½¨Á¢¼àÌýð®Êý£¬¼ì²âÊÇ·ñÓпͻ§¶ËÏò·þÎñÆ÷·¢ËÍÇëÇó£¬ÈôÓÐÔò½ÓÊÕ¸ÃÇëÇ󣬽«Æä·Åµ½½ÓÊÕ¶ÓÁÐÖУº´Ó½ÓÊÕ¶ÓÁÐÖнÓÊÜÒ»¸öÇëÇó£»²¢Ïò¿Í»§¶Ë·¢ËÍÈ·ÈÏÁ¬½ÓÐÅÏ¢¡£
¿Í»§¶Ë½¨Á¢Ò»¸öSocket£¬·µ»Ø¸ÃSocketµÄÃèÊö·û£»ÅäÖÃSocket¶Ë¿ÚºÍIPµØÖ·£»Ïò·þÎñÆ÷·¢ËÍÁ¬½ÓÇëÇ󣬲¢½ÓÊÕ·þ
Ïà¹ØÎĵµ£º
Anatomy of the Linux slab allocator
Learn how Linux manages memory
M. Tim Jones, Consultant Engineer, Emulex Corp.
M. Tim Jones is an embedded software architect and the author of GNU/Linux Application Programming, AI Application Programming, and BSD Sockets Programming from a Multilanguage Persp ......
Linux ÖÐÈçºÎ²éѯºÍжÔØÒÑ°²×°µÄÈí¼þ
¡¡¡¡LinuxÈí¼þµÄ°²×°ºÍжÔØÒ»Ö±ÊÇÀ§ÈÅÐí¶àÐÂÓû§µÄÄÑÌâ¡£ÔÚWindowsÖУ¬ÎÒÃÇ¿ÉÒÔʹÓÃÈí¼þ×Ô´øµÄ°²×°Ð¶ÔسÌÐò»òÔÚ¿ØÖÆÃæ°åÖеēÌí¼Ó/ɾ³ý³ÌÐò” À´ÊµÏÖ¡£ÓëÆäÏàÀàËÆ£¬ÔÚLinuxÏÂÓÐÒ»¸ö¹¦ÄÜÇ¿´óµÄÈí¼þ°²×°Ð¶Ôع¤¾ß£¬ÃûΪRPM¡£Ëü¿ÉÒÔÓÃÀ´½¨Á¢¡¢°²×°¡¢²éѯ¡¢¸üС¢Ð¶ÔØÈí¼þ¡£¸Ã¹¤ ......
ѧϰLinuxϵͳµÄʮһµã½¨Òé
2007.06.12 À´×Ô£ºlingfen1552.cublog.c¡¡ [Êղص½ÎÒµÄÍøÕª]
Ëæ×ÅLinuxÓ¦ÓõÄÀ©Õ¹Ðí¶àÅóÓÑ¿ªÊ¼½Ó´¥Linux£¬¸ù¾ÝѧϰWindwosµÄ¾ÑéÍùÍùÓÐһЩãȻµÄ¸Ð¾õ£º²»Öª´ÓºÎ´¦¿ªÊ¼Ñ§Æð¡£ÈçºÎµÃµ½Áª»ú°ïÖúºÍ˽ÓвÙ×÷ϵͳ²»Í¬£¬¸÷¸öLinuxµÄ·¢Ðа汾µÄ¼¼ÊõÖ§³ÖÊ ......
LinuxÖеĵØÖ·¿Õ¼ä
ÓÐÕâôһϵÁеÄÎÊÌ⣬ÊÇ·ñÔÚÀ§ÈÅ×ÅÄ㣺Óû§³ÌÐò±àÒëÁ¬½ÓÐγɵĵØÖ·¿Õ¼äÔÚʲô·¶Î§ÄÚ£¿Äں˱àÒëºóµØÖ·¿Õ¼äÔÚʲô·¶Î§ÄÚ£¿Òª¶ÔÍâÉè½øÐзÃÎÊ£¬I/OµÄµØÖ·¿Õ¼äÓÖÊÇʲôÑùµÄ£¿
ÏȻشðµÚÒ»¸öÎÊÌâ¡£Linux×î³£¼ûµÄ¿ÉÖ´ÐÐÎļþ¸ñʽΪelf(Executable and Linkable Format)¡£ÔÚelf¸ñʽµÄ¿ÉÖ´ÐдúÂëÖУ¬ld×ÜÊÇ´Ó0x ......
Íø¿¨µÄÉèÖÃ
¼ûÒÔÇ°µÄÎÄÕÂ
Ö÷»úÃûµÄÉèÖÃ:
/etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=a100 ----->Ö÷»úÃû
smbÊÇSamba µÄÖ÷ÒªÆô¶¯·þÎñÆ÷£¬ÈÃÆäËü»úÆ÷ÄÜÖªµÀ´Ë»úÆ÷¹²ÏíÁËʲô£»
......