linux socket ÓÅ»¯
linux socket ÓÅ»¯
2008-06-12 16:40
ʹÓà Sockets API£¬ÎÒÃÇ¿ÉÒÔ¿ª·¢¿Í»§»úºÍ·þÎñÆ÷Ó¦ÓóÌÐò£¬ËüÃÇ¿ÉÒÔÔÚ±¾µØÍøÂçÉϽøÐÐͨÐÅ£¬Ò²¿ÉÒÔͨ¹ý Internet ÔÚÈ«Çò·¶Î§ÄÚ½øÐÐͨÐÅ¡£ÓëÆäËû API Ò»Ñù£¬Äú¿ÉÒÔͨ¹ýһЩ·½·¨Ê¹Óà Sockets API£¬´Ó¶øÌá¸ß Socket µÄÐÔÄÜ£¬»òÕßÏÞÖÆ Socket µÄÐÔÄÜ¡£±¾ÎÄ̽Ë÷ÁË 4 ÖÖʹÓà Sockets API À´»ñȡӦÓóÌÐòµÄ×î´óÐÔÄܲ¢¶Ô GNU/Linux® »·¾³½øÐÐÓÅ»¯´Ó¶ø´ïµ½×îºÃ½á¹ûµÄ·½·¨¡£
ÔÚ¿ª·¢ socket Ó¦ÓóÌÐòʱ£¬Ê×ÒªÈÎÎñͨ³£ÊÇÈ·±£¿É¿¿ÐÔ²¢Âú×ãÒ»Ð©ÌØ¶¨µÄÐèÇó¡£ÀûÓñ¾ÎÄÖиø³öµÄ 4 ¸öÌáʾ£¬Äú¾Í¿ÉÒÔ´ÓÍ·¿ªÊ¼ÎªÊµÏÖ×î¼ÑÐÔÄÜÀ´Éè¼Æ²¢¿ª·¢ socket ³ÌÐò¡£±¾ÎÄÄÚÈݰüÀ¨¶ÔÓÚ Sockets API µÄʹÓá¢Á½¸ö¿ÉÒÔÌá¸ßÐÔÄÜµÄ socket Ñ¡ÏîÒÔ¼° GNU/Linux ÓÅ»¯¡£
ΪÁËÄܹ»¿ª·¢ÐÔÄÜ׿ԽµÄÓ¦ÓóÌÐò£¬Çë×ñÑÒÔϼ¼ÇÉ£º
×îС»¯±¨ÎÄ´«ÊäµÄÑÓʱ¡£
×îС»¯ÏµÍ³µ÷ÓõĸºÔØ¡£
Ϊ Bandwidth Delay Product µ÷½Ú TCP ´°¿Ú¡£
¶¯Ì¬ÓÅ»¯ GNU/Linux TCP/IP Õ»¡£
¼¼ÇÉ 1. ×îС»¯±¨ÎÄ´«ÊäµÄÑÓʱ
ÔÚͨ¹ý TCP socket ½øÐÐͨÐÅʱ£¬Êý¾Ý¶¼²ð·Ö³ÉÁËÊý¾Ý¿é£¬ÕâÑùËüÃǾͿÉÒÔ·â×°µ½¸ø¶¨Á¬½ÓµÄ TCP payload£¨Ö¸ TCP Êý¾Ý°üÖеÄÓÐЧ¸ººÉ£©ÖÐÁË¡£TCP payload µÄ´óСȡ¾öÓÚ¼¸¸öÒòËØ£¨ÀýÈç×î´ó±¨Îij¤¶ÈºÍ·¾¶£©£¬µ«ÊÇÕâЩÒòËØÔÚÁ¬½Ó·¢Æðʱ¶¼ÊÇÒÑÖªµÄ¡£ÎªÁË´ïµ½×îºÃµÄÐÔÄÜ£¬ÎÒÃǵÄÄ¿±êÊÇʹÓþ¡¿ÉÄܶàµÄ¿ÉÓÃÊý¾ÝÀ´Ìî³ä ÿ¸ö±¨ÎÄ¡£µ±Ã»ÓÐ×ã¹»µÄÊý¾ÝÀ´Ìî³ä payload ʱ£¨Ò²³ÆÎª×î´ó±¨ÎĶγ¤¶È£¨maximum segment size£© »ò MSS£©£¬TCP ¾Í»á²ÉÓà Nagle Ëã·¨×Ô¶¯½«Ò»Ð©Ð¡µÄ»º³åÇøÁ¬½Óµ½Ò»¸ö±¨ÎĶÎÖС£ÕâÑù¿ÉÒÔͨ¹ý×îС»¯Ëù·¢Ë͵ı¨ÎĵÄÊýÁ¿À´Ìá¸ßÓ¦ÓóÌÐòµÄЧÂÊ£¬²¢¼õÇáÕûÌåµÄÍøÂçÓµÈûÎÊÌâ¡£
¾¡¹Ü John Nagle µÄËã·¨¿ÉÒÔͨ¹ý½«ÕâЩÊý¾ÝÁ¬½Ó³É¸ü´óµÄ±¨ÎÄÀ´×îС»¯Ëù·¢Ë͵ı¨ÎĵÄÊýÁ¿£¬µ«ÊÇÓÐʱÄú¿ÉÄÜÏ£ÍûÖ»·¢ËÍһЩ½ÏСµÄ±¨ÎÄ¡£Ò»¸ö¼òµ¥µÄÀý×ÓÊÇ telnet ³ÌÐò£¬ËüÈÃÓû§¿ÉÒÔÓëÔ¶³Ìϵͳ½øÐн»»¥£¬Õâͨ³£¶¼ÊÇͨ¹ýÒ»¸ö shell À´½øÐеġ£Èç¹ûÓû§±»ÒªÇóÓ÷¢Ëͱ¨ÎÄ֮ǰÊäÈëµÄ×Ö·ûÀ´Ìî³äij¸ö±¨ÎĶΣ¬ÄÇôÕâÖÖ·½·¨¾Í¾ø¶Ô²»ÄÜÂú×ãÎÒÃǵÄÐèÒª¡£
ÁíÍâÒ»¸öÀý×ÓÊÇ HTTP ÐÒ顣ͨ³££¬¿Í»§»úä¯ÀÀÆ÷»á²úÉúÒ»¸öСÇëÇó£¨Ò»Ìõ HTTP ÇëÇóÏûÏ¢£©£¬È»ºó Web ·þÎñÆ÷¾Í»á·µ»ØÒ»¸ö¸ü´óµÄÏìÓ¦£¨Web Ò³Ãæ£©¡£
½â¾ö·½°¸
ÄúÓ¦¸Ã¿¼ÂǵĵÚÒ»¼þÊÂÇéÊÇ Nagle Ëã·¨Âú×ãÒ»ÖÖÐèÇó¡£ÓÉÓÚÕâÖÖËã·¨¶ÔÊý¾Ý½øÐкϲ¢£¬ÊÔͼ¹¹³ÉÒ»¸öÍêÕûµÄ TCP ±¨ÎĶΣ¬Òò´ËËü»áÒýÈëһЩÑÓʱ¡£µ«ÊÇÕâÖÖËã·¨¿ÉÒÔ×îС»¯ÔÚÏß·ÉÏ·¢Ë͵ı
Ïà¹ØÎĵµ£º
1.×î¼òµ¥µÄ°ì·¨ÐÞ¸Ä/etc/rc.d/rc.localÎļþ(Õâ¸ö·½·¨ÊÇÔÚ²»ÐèÒªloginµÄÇé¿öϾÍÄÜ×Ô¶¯ÔËÐеÄ)
2.»¹ÓÐÐ޸IJ»Í¬Óû§µÄÓû§Ä¿Â¼ÏµÄ.bashrcÎļþ¿ÉÒÔʵÏÖµ±¸ÃÓû§µÇ½µÄʱºò×Ô¶¯ÔËÐÐһЩ½Å±¾(¼ÇµÃ/etcÏÂÒ²ÓÐÒ»¸ö.bashrcÎļþ,Ð޸ĺó¿ÉÒÔÈÃÈκÎÓû§µÇ½¶¼×Ô¶¯Ö´ÐÐһЩ½Å±¾µÄ)
3.»¹ÓÐÒ»¸öºÜºÃµÄ·½·¨,×öÒ»¸öÊôÓÚ×Ô¼ºµÄrcÆô¶¯½Å± ......
......
LinuxÖеĽø³ÌͨÐÅ
1.¹ÜµÀ
º¯ÊýÔÐÍ£ºint pipe(int filedes[2]);
º¯Êý·µ»ØÖµ£º ÕýÈ··µ»Ø0£»´íÎó·µ»Ø-1
ÆäÖеÄÎļþÃèÊö·ûfiledes[0]ÊÇÓÃÀ´¶ÁÈ¡Êý¾ÝµÄ£¬filedes[1]ÊÇÓÃÀ´Ð´Êý¾ÝµÄ¡£
Àý×Ó1£º
#include<stdio.h>
#include<stdlib.h>
#include<u ......
Nginx ("engine x") ÊÇÒ»¸ö¸ßÐÔÄÜµÄ HTTP ºÍ·´Ïò´úÀí·þÎñÆ÷£¬Ò²ÊÇÒ»¸ö IMAP/POP3/SMTP ´úÀí·þÎñÆ÷¡£ Nginx ÊÇÓÉ Igor Sysoev Ϊ¶íÂÞ˹·ÃÎÊÁ¿µÚ¶þµÄ Rambler.ru Õ¾µã¿ª·¢µÄ£¬ËüÒѾÔÚ¸ÃÕ¾µãÔËÐг¬¹ýÁ½Äê°ëÁË¡£Igor ½«Ô´´úÂëÒÔÀàBSDÐí¿ÉÖ¤µÄÐÎʽ·¢²¼¡£
¡¡¡¡Nginx ³¬Ô½ Apache µÄ¸ßÐÔÄܺÍÎȶ¨ÐÔ£¬Ê¹µÃ¹úÄÚʹÓà Nginx ×÷ ......
1¡¢ freemind ˼¿¼Èí¼þ
sudo pacman -S freemind
2¡¢ gnomesword Ê¥¾Ñ§Ï°Èí¼þ# clucene-0.9.21b-1 sword-1.6.1-1 xiphos-3.1.2-1
sudo pacman -S gnomesword
3¡¢exaileÒôÀÖ²¥·ÅÆ÷
sudo pacman -S exaile
4¡¢°²×° mp3blaster
sudo pacman -S mp3blaster
5 ¡¢°²×°msnÈí¼þ
sud ......