Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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


Ïà¹ØÎĵµ£º

ÓÃpscp ÔÚWindowsÓëLinuxÖ®¼ä´«ÊäÎļþ

ÓÃpscp ÔÚWindowsÓëLinuxÖ®¼ä´«ÊäÎļþ
 
putty¹¤¾ßÔÚÎÒµÄÏÂÔØÖÐÓÐ
²½ÖèÈçÏ£º
1. Õû¸öÁ÷³ÌÊÇÕâÑù£¬ÔÚwindowsµÄÃüÁîÐÐÏ£¬ÓÃpscpÃüÁî°ÑÎļþ´ÓwindowsÖ¸¶¨Ä¿Â¼·¢Ë͵½linuxÖ¸¶¨Ä¿Â¼£»»òÕßÊÇÎļþ´ÓlinuxÖ¸¶¨Ä¿Â¼ÏÂÔØµ½windowsÖ¸¶¨Ä¿Â¼ÖС£
    Á½ÖÖ´«ÊäÎļþµÄ·½Ê½¶¼ÊÇÔÚWindowsϵͳϲÙ×÷µÄ£¬linuxÏµÍ ......

MySQL(rootÓû§)ÃÜÂëÍü¼ÇÖØÖÃ(Windows/Linux)

MySQL(rootÓû§)ÃÜÂëÍü¼ÇÖØÖÃ
·Ö±ðÔÚWindowsϺÍLinuxÏÂÖØÖÃÁËMYSQLµÄrootµÄÃÜÂ룬ÕûÀíÈçÏ£º
¡¡¡¡A£ºÔÚwindowsÏ£º
¡¡¡¡1£º½øÈëcmd£¬Í£Ö¹mysql·þÎñ£ºNet stop mysql
¡¡¡¡   µ½mysqlµÄ°²×°Â·¾¶Æô¶¯mysql£¬ÔÚbinĿ¼ÏÂʹÓÃmysqld-nt.exeÆô¶¯£¬
¡¡¡¡2£ºÖ´ÐУºmysqld-nt --skip-grant-tables£¨´°¿Ú»áһֱֹͣ ......

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

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

linux¿ª»ú¹ý³ÌÉîÈëÀí½â

Linux¿ª»ú¹ý³ÌÀí½â
Ò»£®           Power on
¶þ£®           BIOS¼Óµç×Լ죺
1£®  ¼ì²âËùÓÐÖܱßÓ²¼þ
2£®  ѰÕÒÆô¶¯µÄ´ÅÅÌ(cd-rom,floppy,IDE HDD,usb deviceµÈ)
Èý£®     & ......

linuxÄÚºËÒÆÖ²s3c2410£¬ÒÆÖ²Õýʽ¿ªÊ¼1

ÔÚÇ°ÃæµÄ×¼±¸¹¤×÷Íê³ÉÖ®ºó£¬ÏÈʵÑéһϣ¬Ì¸²»ÉÏÕæÕýµÄÒÆÖ² £¬ÒòΪ´úÂ붼ûÓиĵġ£
Ê×ÏÈÐ޸Ķ¥²ãµÄMakefile£¬ÐÞ¸ÄARCH,CROSS_COMPLIE±äÁ¿¡£
#ARCH        ?= $(SUBARCH)
ARCH        ?= arm
CROSS_COMPILE    ?= arm-linux-
Ö´ÐÐmake smd ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ