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Ö®¼ä´«ÊäÎļþ
putty¹¤¾ßÔÚÎÒµÄÏÂÔØÖÐÓÐ
²½ÖèÈçÏ£º
1. Õû¸öÁ÷³ÌÊÇÕâÑù£¬ÔÚwindowsµÄÃüÁîÐÐÏ£¬ÓÃpscpÃüÁî°ÑÎļþ´ÓwindowsÖ¸¶¨Ä¿Â¼·¢Ë͵½linuxÖ¸¶¨Ä¿Â¼£»»òÕßÊÇÎļþ´ÓlinuxÖ¸¶¨Ä¿Â¼ÏÂÔØµ½windowsÖ¸¶¨Ä¿Â¼ÖС£
Á½ÖÖ´«ÊäÎļþµÄ·½Ê½¶¼ÊÇÔÚ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£¨´°¿Ú»áһֱֹͣ ......
windows(dos)ÏµĻ»Ðзû ºÍ linux (ubuntu)ÏµĻ»ÐзûÊDz»Í¬µÄ¡£
ÔÚÉæ¼°µ½DOSϵÄÎı¾ ÔÚLINUXÏ ²Ù×÷ʱ£¬¾ÍÉæ¼°µ½»»Ðзû²»Í¬´øÀ´µÄÂé·³¡£
£¬ÔÚDOSʹÓõĻ»ÐзûΪ ^M$£¬ÎÒÃdzÆÎªCRÓëLFÁ½¸ö·ûºÅ¡£¶øÔÚLinuxÖУ¬Ôò½öÓÐLF ($) Õâ¸ö»»Ðзû¡£Õâ¸ö»»Ðзû¶ÔÓÚ
LinuxµÄÓ°ÏìºÜ´ó¡£
ÎÒÃÇ˵¹ý£¬ÔÚ¿ªÊ¼Ö´ÐÐLinuxÃüÁîʱ£¬ËüµÄÅжÏÒÀ
......
Linux¿ª»ú¹ý³ÌÀí½â
Ò»£® Power on
¶þ£® BIOS¼Óµç×Լ죺
1£® ¼ì²âËùÓÐÖܱßÓ²¼þ
2£® ѰÕÒÆô¶¯µÄ´ÅÅÌ(cd-rom,floppy,IDE HDD,usb deviceµÈ)
Èý£® & ......
ÔÚÇ°ÃæµÄ×¼±¸¹¤×÷Íê³ÉÖ®ºó£¬ÏÈʵÑéһϣ¬Ì¸²»ÉÏÕæÕýµÄÒÆÖ² £¬ÒòΪ´úÂ붼ûÓиĵġ£
Ê×ÏÈÐ޸Ķ¥²ãµÄMakefile£¬ÐÞ¸ÄARCH,CROSS_COMPLIE±äÁ¿¡£
#ARCH ?= $(SUBARCH)
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-
Ö´ÐÐmake smd ......