Socket³ÌÐò´ÓwindowsÒÆÖ²µ½linuxÏÂ
1)Í·Îļþ
windowsÏÂwinsock.h»òwinsock2.h
linuxÏÂnetinet/in.h£¨´ó²¿·Ö¶¼ÔÚÕâ¶ù£©£¬unistd.h£¨closeº¯ÊýÔÚÕâ¶ù£©£¬sys/socket.h£¨ÔÚin.hÀïÒѾ°üº¬ÁË£¬¿ÉÒÔÊ¡ÁË£©
2)³õʼ»¯
windowsÏÂÐèÒªÓÃWSAStartupÆô¶¯Ws2_32.lib£¬²¢ÇÒÒªÓÃ#pragma comment(lib,"Ws2_32")À´¸æÖª±àÒëÆ÷Á´½Ó¸Ãlib¡£
linuxϲ»ÐèÒª
3)¹Ø±Õsocket
windowsÏÂclosesocket(...)
linuxÏÂclose(...)
4)ÀàÐÍ
windowsÏÂSOCKET
linuxÏÂint£¨ÎÒϲ»¶ÓÃlong£¬ÕâÑù±£Ö¤ÊÇ4byte£¬ÒòΪ-1ÎÒ×Üϲ»¶Ð´³É0xFFFF£©
5)»ñÈ¡´íÎóÂë
windowsÏÂgetlasterror()/WSAGetLastError()
linuxÏ£¬Î´Äܳɹ¦Ö´ÐеÄsocket²Ù×÷»á·µ»Ø-1£»Èç¹û°üº¬ÁËerrno.h£¬¾Í»áÉèÖÃerrno±äÁ¿
6)ÉèÖ÷Ç×èÈû
windowsÏÂioctlsocket()
linuxÏÂfcntl()£¬ÐèҪͷÎļþfcntl.h
7)sendº¯Êý×îºóÒ»¸ö²ÎÊý
windowsÏÂÒ»°ãÉèÖÃΪ0
linuxÏÂ×îºÃÉèÖÃΪMSG_NOSIGNAL£¬Èç¹û²»ÉèÖã¬ÔÚ·¢Ëͳö´íºóÓпÉÄܻᵼÖ³ÌÐòÍ˳ö
8)ºÁÃ뼶ʱ¼ä»ñÈ¡
windowsÏÂGetTickCount()
linuxÏÂgettimeofday()
9)¶àÏß³Ì
windowsϰüº¬process.h£¬Ê¹ÓÃ_beginthreadºÍ_endthread
linuxϰüº¬pthread.h£¬Ê¹ÓÃpthread_createºÍpthread_exit
10)ÓÃIP¶¨ÒåÒ»¸öµØÖ·£¨sockaddr_inµÄ½á¹¹µÄÇø±ð£©
windowsÏÂaddr_var.sin_addr.S_un.S_addr
linuxÏÂaddr_var.sin_addr.s_addr
¶øÇÒWinsockÀï×îºóÄǸö32bitµÄS_addrÒ²Óм¸¸öÒÔÁªºÏ£¨Union£©µÄÐÎʽÓëËü¹²ÏíÄÚ´æ¿Õ¼äµÄ³ÉÔ±±äÁ¿£¨±ãÓÚÒÔÆäËû·½Ê½¸³Öµ£©£¬¶øLinuxµÄSocketûÓÐÕâ¸öÁªºÏ£¬¾ÍÊÇÒ»¸ö32bitµÄs_addr¡£Óöµ½ÄÇÖֵõ½ÁËÊÇ4¸öcharµÄIPµÄÐÎʽ£¨±ÈÈç127Ò»¸ö£¬0Ò»¸ö£¬0Ò»¸öºÍ1Ò»¸ö¹²Ëĸöchar£©£¬WinSock¿ÉÒÔÖ±½ÓÓÃ4¸öS_bÀ´¸³Öµµ½S_addrÀ¶øÔÚLinuxÏ£¬¿ÉÒÔÓñßÏò×óÒÆÎ»£¨Ò»ÏÂ8bit£¬¹²ËÄÏ£©±ßÏà¼ÓµÄ·½·¨¸³Öµ¡£
11)Òì³£´¦Àí
linuxϵ±Á¬½Ó¶Ï¿ª£¬»¹·¢Êý¾ÝµÄʱºò£¬²»½ösend()µÄ·µ»ØÖµ»áÓз´Ó³£¬¶øÇÒ»¹»áÏñϵͳ·¢ËÍÒ»¸öÒì³£ÏûÏ¢£¬Èç¹û²»×÷´¦Àí£¬ÏµÍ³»á³öBrokePipe£¬³ÌÐò»áÍ˳ö¡£Îª´Ë£¬send()º¯ÊýµÄ×îºóÒ»¸ö²ÎÊý¿ÉÒÔÉèMSG_NOSIGNAL£¬½ûÖ¹send()º¯ÊýÏòϵͳ·¢ËÍÒì³£ÏûÏ¢¡£
Ïà¹ØÎĵµ£º
ת×Ôhttp://blog.163.com/ericxia_gnikam/blog/static/969208792008102545614453/
ÔÚLinux kernelµÄÔ´´úÂëÖУ¬¾³£Äܼûµ½if(likely(x))»òif(unlikely(x))Ö®ÀàµÄÓ÷¨£¬ÆäÈ·Çк¬ÒåÐèҪ˵Ã÷һϣ¬ÒÔ±ã¸üºÃµÄÀí½âkernelµÄÔ´´úÂë¡£
likelyÓëunlikelyÕâÁ½¸öºêÔÚlinux/compiler.hÖе͍ÒåÈçÏ£º
#define likely ......
Ê×ÏȰ²×°±ØÐèµÄ¿ª·¢
°ü
sudo apt-get install gcc g++ libgcc1 libg++ make gdb
°²×°MYSQLµÄCÓïÑÔ¿ª·¢°ü
sudo apt-get install libmysql++-dev libmysql++2c2a libmysqlclient15-dev libmysqlclient15off
°ÑlibÎļþ¿½±´µ½¹«ÓÃ
sudo cp /usr/lib/mysql/* /usr/lib/
½¨Á¢Ò»¸öÐÂÎļþtest.cpp
vim test.cpp
ÊäÈëÄÚÈÝ
......
Èç¹ûÔÚRed Hat 9°²×°Ê±ÒѾĬÈϰ²×°ÁËNFS×é¼þ£¬½ÓÏÂÀ´µÄ¹¤×÷Ö÷ÒªÊÇÅäÖÃÏà¹ØÎļþʹ·þÎñÆ÷ÌṩNFS·þÎñ£¬²½ÖèÈçÏ¡£
¡¡¡¡£¨1£©É趨ij̨¼ÆËã»úΪNFS·þÎñÆ÷£¬²¢ÔÚºǫ́Æô¶¯Ïà¹ØµÄÊØ»¤½ø³Ì£¨ÔÚ"·þÎñÅäÖÃ"ÖÐÆô¶¯£©¡£Ò»°ãÀ´Ëµ£¬Èç¹ûNFS·þÎñÆ÷ÒªÌṩ·þÎñ£¬±ØÐëÆô¶¯inet¡¢portmap¡¢nfsºÍmountÕâ4¸öÊØ»¤½ø³Ì²¢±£³ÖÔÚºó ......
¾¡¹ÜLinux¿ª·¢µÄÏà¹Ø¸ÚλºÜ¶à£¬µ«³¤ÆÚÒÔÀ´Linux¿ª·¢Ã»ÓÐͳһµÄ¿ª·¢Æ½Ì¨£¬´ó¶àÊýµÄ¿ª·¢Õß¶¼Ö±½ÓʹÓÃVI¡¢GCCµÈÃüÁîÐй¤¾ß£¬ÕâÑùÆäʵ²»ÀûÓÚ´óÐÍÏîÄ¿µÄ¿ª·¢¡£ 1.ÒÀÈ»ÊÇÊìϤµÄ¿ª·¢Á÷³Ì ÔÚLinux²Ù×÷ϵͳÖУ¬CÓïÑÔ³ÌÐòµÄ¿ª·¢ºÍÆäËû»·¾³ÀàËÆ£¬³ÌÐòÉú³ÉÖ÷Òª·Ö³É±àÒë¡¢»ã±à¡¢Á¬½ÓµÈ¼¸¸ö²½Öè¡£ ± ......
KS2009: How Google uses Linux
By Jonathan Corbet
October 21, 2009
LWN's 2009 Kernel Summit coverage
There may be no single organization which runs more Linux systems than Google. But the kernel development community knows little about how Google uses Linux and what sort of problems are ......