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

LinuxÉÏTCP¶ªÊ§Ð¡°ü²»¿É¼ûµÄ½â¾ö

LinuxÉÏTCP¶ªÊ§Ð¡°ü²»¿É¼ûµÄ½â¾ö
 ×÷ÕߣºÇ§Àï¹ÂÐÐ(http://blog.csdn.net/yanghehong)
ÓÐÍøÓÑÔÚ×öÒ»¸öLinuxÉϵĿͻ§¶ËÅöµ½ÕâÑùµÄÎÊÌ⣺
ÎÒÃÇÔÚLinuxÏ¿ª·¢Ò»¸öÍøÂç¿Í»§¶Ë³ÌÐò£¨·þÎñÆ÷ÊDz»¿ÉÐ޸ĵģ©£¬²»¶ÏÏò·þÎñÆ÷²»¶¨ÆÚ·¢ËÍһЩºÜСµÄ°ü£¨Ò»°ãÖ»Óм¸Ê®×Ö½Ú£©£¬ÏÖÔÚ³öÏÖÕâÖÖÇé¿ö£º´ó²¿·Ö°üÕý³£·¢ËÍ£¬µ«Êǵ±ÎÞÏßModem¶Ï¿ªµÄʱºò£¬Èç¹ûÕâ¸öʱºò¸ÕºÃÓÐÒ»¸öС°ü£¬¾Í¿ÉÄܶªÊ§£¬µ«ÔÚ³ÌÐòÖÐÈ´ÏÔʾÒѾ­·¢Ëͳɹ¦£¬µ¼Ö¶ª°ü¡£
ÎÒÃÇ·ÖÎöÔ­ÒòÊÇÕâÑù£º
1£ºÖ÷³ÌÐò´´½¨Socket£¬TCP/IP·½Ê½£¬²¢²ÉÓÃStream·½Ê½
2£ºÖ÷³ÌÐòµ÷ÓÃWrite£¬Ð´ÈëС°üµ½ÏµÍ³µÄSocket»º³åÇø£¬²¢·µ»Ø³É¹¦Ð´È룬ÓÉÓÚ×Ö½ÚÊýºÜС£¬ËùÒÔÒ»°ã¶¼Á¢¼´·µ»ØÐ´Èë³É¹¦£¡
3£ºLinux TCP/IPЭÒéÕ»°ÑSocket»º³åÇøÊý¾Ý·¢Ë͵½·þÎñÆ÷
Èç¹ûµÚ¶þ²½Íê³É£¬¸ÕºÃÔÚµÚÈý²½³öÏÖÎÞÏßModem¶Ï¿ªµÄÇé¿ö£¬¾Í»áµ¼ÖÂÖ÷³ÌÐòÒÔΪÒѾ­·¢Ëͳɹ¦ÁË£¬µ«·þÎñÆ÷ÊÕ²»µ½µÄÇé¿ö¡£
ÎÒÃÇÔÚÍøÂçÉÏËÑË÷ÁË´óÁ¿µÄ×ÊÁÏ£¬µ«ÊÇûÓÐÕÒµ½×îÖյĽâ¾ö·½°¸£¬Ò»°ã¶¼ÊÇÒªÇóÐÞ¸ÄЭÒ飬¼ÓÉ϶ÔС°üµÄACK´¦Àí£¬µ«ÎÒÃÇÕâ±ßÎÞ·¨¿ØÖÆ·þÎñÆ÷¡£
ÎÒÃÇÒ²ÊÔ×Å¿ØÖÆKeepAliveºÍNoDelay£¬µ«»¹ÊÇûЧ¹û£º
//¶Ôsock_cliÉèÖÃKEEPALIVEºÍNODELAY
len = sizeof(unsigned int);
setsockopt(sock_cli, SOL_SOCKET, SO_KEEPALIVE, &optval, len);//ʹÓÃKEEPALIVE
setsockopt(sock_cli, IPPROTO_TCP, TCP_NODELAY, &optval, len);//½ûÓÃNAGLEËã·¨
ÇëÎÊÓÐʲô·½Ê½¿ÉÒÔ½â¾öÕâÖÖÇé¿ö£¿
Èç¹ûÊÇWindowsµÄ£¬¿ÉÒÔ°ÑÄں˵ķ¢ËÍbufferÉèΪ0£¬Ò²¾ÍÊÇsocketµÄSO_SNDBUFÑ¡Ïî¡£ÄÇôֱµ½·þÎñÆ÷TCPÊÕµ½Êý¾Ý²¢ackÁË£¬¿Í»§¶ËµÄдÈë²Å·µ»Ø³É¹¦¡£
²»¹ýÕâÖÖÉèSO_SNDBUFµÄ·½·¨ÔÚLinuxÉÏÊÇÐв»Í¨µÄ¡£Linux²»Èðѷ¢ËÍbufferÉèΪ0¡£
LinuxÄÚºËÖеĴúÂëÊÇÕâÑùµÄ£º
Socket.c
 int sock_setsockopt(struct socket *sock, int level, int optname,
char __user *optval, int optlen)
{
case SO_SNDBUF:
/* Don't error on this BSD doesn't and if you think
about it this is right. Otherwise apps have to
play 'guess the biggest size' games. RCVBUF/SNDBUF
are treated in BSD as hints */
if (val > sysctl_wmem_max)
val = sysctl_wmem_max;
set_sndbuf:
sk->sk_userlocks |= SOCK_SNDBUF_LOCK;
if ((val * 2) < SOCK_MIN_SNDBUF)
sk->sk_sndbuf = SOCK_MIN_SNDBUF;
else
sk->sk_sndbuf = val


Ïà¹ØÎĵµ£º

Linux Ë«Íø¿¨°ó¶¨²âÊÔ


ÏȽéÉÜÒ»ÏÂÇé¿ö£¬·þÎñÆ÷AºÍ·þÎñÆ÷B¶¼ÊÇCentOS 4.6µÄϵͳ£¬ÏÖÔÚÒª×öHA
Cluster£¬ÎªÁ˱ÜÃâÁÑÄԵķ¢Éú£¬ÒªÌá¸ßÐÄÌøÁ´Â·µÄ¿É¿¿ÐÔ£¬ÏÂͼÊÇÏÖʱµÄÁ¬½ÓÇé¿ö£¬·þÎñÆ÷AµÄeth2¡¢eth3·Ö±ðºÍ·þÎñÆ÷BµÄeth2¡¢eth3
ÏàÁ¬£¨Ã»ÓÐ˳Ðò¹ØÏµ£©£¬ËùÓÐÍø¿¨¶¼ÊÇǧÕ×Íø¿¨£¬ÍØÆËͼÈçÏÂËùʾ£º
ÔÚ½éÉÜÒ»ÆðÓ²¼þÇé¿ö£¬·þÎñÆ÷AÊÇһ̨HP DL380
G5£¬ ......

linux gcc ÃüÁî

1£¬-c ±àÒëÄ¿±ê´úÂë
      gcc -o hello.o -c hello.c  //-o Ö»ÊÇÖ¸¶¨Éú³ÉÄ¿±êÎļþÃû
      »ò
      gcc -c hello.c
      ¶¼Éú³Éhello.oÎļþ£¬²»¿ÉÒÔÖ´ÐС£
      gcc -o hello hello.o
      ÓÃÄ¿±êÎļþÉú³Éhell ......

ʹÓà /proc ÎļþϵͳÀ´·ÃÎÊ Linux Äں˵ÄÄÚÈÝ

²Î¼û£ºhttp://www.ibm.com/developerworks/cn/linux/l-proc.html
ʹÓà /proc ÎļþϵͳÀ´·ÃÎÊ Linux Äں˵ÄÄÚÈÝ
Õâ¸öÐéÄâÎļþϵͳÔÚÄں˿ռäºÍÓû§¿Õ¼äÖ®¼ä´ò¿ªÁËÒ»¸öͨÐÅ´°¿Ú
ÎĵµÑ¡Ïî
<tr
valign="top"><td width="8"><img alt="" height="1" width="8& ......

dos ºÍ linux »»Ðзû Çø±ð

windows(dos)ÏµĻ»Ðзû ºÍ linux (ubuntu)ÏµĻ»ÐзûÊDz»Í¬µÄ¡£
ÔÚÉæ¼°µ½DOSϵÄÎı¾ ÔÚLINUXÏ ²Ù×÷ʱ£¬¾ÍÉæ¼°µ½»»Ðзû²»Í¬´øÀ´µÄÂé·³¡£
£¬ÔÚDOSʹÓõĻ»ÐзûΪ ^M$£¬ÎÒÃdzÆÎªCRÓëLFÁ½¸ö·ûºÅ¡£¶øÔÚLinuxÖУ¬Ôò½öÓÐLF ($) Õâ¸ö»»Ðзû¡£Õâ¸ö»»Ðзû¶ÔÓÚ
LinuxµÄÓ°ÏìºÜ´ó¡£
ÎÒÃÇ˵¹ý£¬ÔÚ¿ªÊ¼Ö´ÐÐLinuxÃüÁîʱ£¬ËüµÄÅжÏÒÀ ......

linux fetion

Fedora ϱàÒë linux fetion Ó¦ÓóÌÐòdemo
1: °²×°±àÒë»·¾³
sudo yum install qt4-devel curl-devel gcc glibc-devel
2: È¥ http://www.libfetion.cn/Linux_demoapp_download.html ÏÂÔØ×îеÄlibfetion GUIÔ´´úÂë
3: ʹÓýâѹÃüÁî½âѹÏÂÔØºóµÄÎļþ
tar -zxvf linux-fetion-***.tar.gz (***Ϊ³ÌÐò°æ±¾ºÅ)
4: ½øÈ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ