JAVA Socket³¬Ê±Ç³Îö
JAVA Socket³¬Ê±Ç³Îö
Ì×½Ó×Ö»ò²å×ù(socket)ÊÇÒ»ÖÖÈí¼þÐÎʽµÄ³éÏó£¬ÓÃÓÚ±í´ïÁ½Ì¨»úÆ÷¼äÒ»¸öÁ¬½ÓµÄ“ÖÕ¶Ë”¡£Õë¶ÔÒ»¸öÌØ¶¨µÄÁ¬½Ó£¬Ã¿Ì¨»úÆ÷É϶¼ÓÐÒ»¸ö“Ì×½Ó×Ö”£¬¿ÉÒÔÏëÏóËüÃÇÖ®¼äÓÐÒ»ÌõÐéÄâµÄ“ÏßÀ”¡£JAVAÓÐÁ½¸ö»ùÓÚÊý¾ÝÁ÷µÄÌ×½Ó×ÖÀࣺServerSocket£¬·þÎñÆ÷ÓÃËü“ÕìÌý”½øÈëµÄÁ¬½Ó£»Socket£¬¿Í»§¶ËÓÃËü³õʼһ´ÎÁ¬½Ó¡£ÕìÌýÌ×½Ó×ÖÖ»ÄܽÓÊÕеÄÁ¬½ÓÇëÇ󣬲»ÄܽÓÊÕʵ¼ÊµÄÊý¾Ý°ü¡£
Ì×½Ó×ÖÊÇ»ùÓÚTCP/IPʵÏֵģ¬ËüÊÇÓÃÀ´Ìṩһ¸ö·ÃÎÊTCPµÄ·þÎñ½Ó¿Ú£¬»òÕß˵Ì×½Ó×ÖsocketÊÇTCPµÄÓ¦Óñà³Ì½Ó¿ÚAPI£¬Í¨¹ýËüÓ¦Óòã¾Í¿ÉÒÔ·ÃÎÊTCPÌṩµÄ·þÎñ¡£
ÔÚJAVAÖУ¬ÎÒÃÇÓÃServerSocket¡¢SocketÀà´´½¨Ò»¸öÌ×½Ó×ÖÁ¬½Ó£¬´ÓÌ×½Ó×ֵõ½µÄ½á¹ûÊÇÒ»¸öInputStreamÒÔ¼°OutputStream¶ÔÏó£¬ÒԱ㽫Á¬½Ó×÷Ϊһ¸öIOÁ÷¶ÔÏó¶Ô´ý¡£Í¨¹ýIOÁ÷¿ÉÒÔ´ÓÁ÷ÖжÁÈ¡Êý¾Ý»òÕßдÊý¾Ýµ½Á÷ÖУ¬¶ÁдIOÁ÷»áÓÐÒì³£IOException²úÉú¡£
Ì×½Ó×ֵײãÊÇ»ùÓÚTCPµÄ£¬ËùÒÔsocketµÄ³¬Ê±ºÍTCP³¬Ê±ÊÇÏàͬµÄ¡£ÏÂÃæÏÈÌÖÂÛÌ×½Ó×Ö¶Áд»º³åÇø£¬½Ó×ÅÌÖÂÛÁ¬½Ó½¨Á¢³¬Ê±¡¢¶Áд³¬Ê±ÒÔ¼°JAVAÌ×½Ó×Ö±à³ÌµÄǶÌ×Òì³£²¶»ñºÍÒ»¸ö³¬Ê±Àý×Ó³ÌÐòµÄ×¥°üʾÀý¡£
1 socket¶Áд»º³åÇø
Ò»µ©´´½¨ÁËÒ»¸öÌ×½Ó×ÖʵÀý£¬²Ù×÷ϵͳ¾Í»áΪÆä·ÖÅ仺³åÇøÒÔ´æ·Å½ÓÊÕºÍÒª·¢Ë͵ÄÊý¾Ý¡£
JAVA¿ÉÒÔÉèÖöÁд»º³åÇøµÄ´óС-setReceiveBufferSize(int size), setSendBufferSize(int size)¡£
ÏòÊä³öÁ÷дÊý¾Ý²¢²»Òâζ×ÅÊý¾Ýʵ¼ÊÉÏÒѾ±»·¢ËÍ£¬ËüÃÇÖ»ÊDZ»¸´ÖƵ½ÁË·¢ËÍ»º³åÇø¶ÓÁÐSendQ£¬¾ÍÊÇÔÚSocketµÄOutputStreamÉϵ÷ÓÃflush()·½·¨£¬Ò²²»Äܱ£Ö¤Êý¾ÝÄܹ»Á¢¼´·¢Ë͵½ÍøÂç¡£ÕæÕýµÄÊý¾Ý·¢ËÍÊÇÓɲÙ×÷ϵͳµÄTCPÐÒéջģ¿é´Ó»º³åÇøÖÐÈ¡Êý¾Ý·¢Ë͵½ÍøÂçÀ´Íê³ÉµÄ¡£
µ±ÓÐÊý¾Ý´ÓÍøÂçÀ´µ½Ê±£¬TCPÐÒéջģ¿é½ÓÊÕÊý¾Ý²¢·ÅÈë½ÓÊÕ»º³åÇø¶ÓÁÐRecvQ£¬ÊäÈëÁ÷InputStreamͨ¹ýread·½·¨´ÓRecvQÖÐÈ¡³öÊý¾Ý¡£
2 socketÁ¬½Ó½¨Á¢³¬Ê±
socketÁ¬½Ó½¨Á¢ÊÇ»ùÓÚTCPµÄÁ¬½Ó½¨Á¢¹ý³Ì¡£TCPµÄÁ¬½ÓÐèҪͨ¹ý3´ÎÎÕÊÖ±¨ÎÄÀ´Íê³É£¬¿ªÊ¼½¨Á¢TCPÁ¬½ÓʱÐèÒª·¢ËÍͬ²½SYN±¨ÎÄ£¬È»ºóµÈ´ýÈ·Èϱ¨ÎÄSYN+ACK£¬×îºóÔÙ·¢ËÍÈ·Èϱ¨ÎÄACK¡£TCPÁ¬½ÓµÄ¹Ø±Õͨ¹ý4´Î»ÓÊÖÀ´Íê³É£¬Ö÷¶¯¹Ø±ÕTCPÁ¬½ÓµÄÒ»·½·¢ËÍFIN±¨ÎÄ£¬µÈ´ý¶Ô·½µÄÈ·Èϱ¨ÎÄ£»±»¶¯¹Ø±ÕµÄÒ»·½Ò²·¢ËÍFIN±¨ÎÄ£¬È»µÈ´ýÈ·Èϱ¨ÎÄ¡£
ÕýÔڵȴýTCPÁ¬½ÓÇëÇóµÄÒ»¶ËÓÐÒ»¸ö¹Ì¶¨³¤¶ÈµÄÁ¬½Ó¶ÓÁУ¬¸Ã¶ÓÁÐÖеÄÁ¬½ÓÒѾ±»TCP½ÓÊÜ£¨¼´Èý´ÎÎÕÊÖÒѾÍê³É£©£¬µ«»¹Ã»Óб
Ïà¹ØÎĵµ£º
ÓÐÊÂÇ飬ÓÐЩÊÂÇéÊÇÁ¦²»´ÓÐÄ£¡À´±±¾©ÒѾÁ½¸ö¶àÔ¹ýÈ¥ÁË£¬×Ô¼ºÀë¿ªÖØÇ죬À뿪¿ªËýÁ½¸öÔÂÁË£¬À´Õâ¶ùµÄËùÓзÑÓö¼ÊÇËý¾Êֵģ¬ËýµÄ¸¸Ä¸²»ÖªµÀ£¬Îҵĸ¸Ä¸Ò²²»
ÖªµÀÎÒÏÖÔÚûÓÐÉϰ࣬¸ü²»ÓÃ˵ÎÒ²»ÔÚÉϰàÁË£¡Ã¿½»´òµç»°£¬¶¼¸ø¼ÒÀïÃæµÄÈËÈö»Ñ£¬ÐÄÀïÕæµÄÓÐʱºòÓÐÒ»Öֿ޵ijåµÄ¸Ð¾õ£¬ÐÄÀïÎØÆü£¬È´Ö»ÄÜÊǶÌÔݵ ......
1. ·ç¸ñÎñ±Ø±£³ÖÒ»¹áÐÔ(Consistent)
Ç°ÃæËµµ½µÄÄǸöÅóÓѵÄÎÊÌ⣬¾ÍÊÇ·ç¸ñÒ»¹áÐÐÎÊÌâ¡£ÆäʵËûµÄ·ç¸ñ£¬±¾À´Ò²Ã»ÓÐʲô
ÎÊÌ⣬µ«ÔÚÏîÄ¿ÀºÍÆäËû³ÌÐòÔ±µÄ³ÌÐòµÄ·ç¸ñ£¬ÏÔµÃìçÒ죬ÄǾʹæÔÚÎÊÌâÁË¡£
±ÈÈçÕâ¸öËõ½ø£¬ÓÖ±ÈÈç±äÁ¿ÃüÃû·½·¨£¬²»Í¬µÄÀ࣬²»Í¬µÄMethodsÀ¸÷×Ô²»Í¬£¬
Õâ³ÌÐò¾ÍºÜÄÑ¿´ÁË¡£ËùÒÔÒ»µ©ÄãÑ¡ÔñÁ ......
½ñÌìÊǸöºÃÈÕ×Ó£¬ÎªÊ²Ã´ÕâÃ´ËµÄØ£¿ÒòΪ½ñÌì½á»éµÄÌØ±ð¶à£¬ÕæµÄÏ൱¶à¡£Ö»ÒªÊǸöÓÐÍ·ÓÐÁ³µÄ·¹µê¶¼»áÓÐÐÂÈËÔÚÄÇÀïÍê³É×Ô¼º×îÃÀÀöµÄ»ØÒä¡£µ«ÎÒµÄÐÄÇéÈ´ÈçǰÁ½ÈÕµÄÁ¬ÌìÓêÒ»Ñù×ÜÊÇÒõÒõµÄÔÚÏÂÓꡣΪÁËÄÜÈÃ×Ô¼ºÔçÈÕ×ß³öÒõö²£¬ÈÃ×Ô¼ºÄܹ»ÔÙ´Î×öÖ÷×Ô¼ºµÄÈËÉú£¬½ñÌìÎÒ¾ö¶¨Òª»Øµ½ÎÒרҵ¿ª·¢µÄµÀ·ÉÏÀ´£ ......
ºÜÎÒÕÒÁ˺þà ÖÕÓÚÕÒµ½ÁË.....
ÒÔÏÂÊÇתÎÄ£º
//--------------------------------------------------------------------------------------------------
·½·¨ºÜ¼òµ¥£¬µ÷ÓÃexplorer.exe¾Í¿ÉÒÔ£¬
Runtime.getRuntime().exec(
& ......