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½ÓÊÜ£¨¼´Èý´ÎÎÕÊÖÒѾÍê³É£©£¬µ«»¹Ã»Óб
Ïà¹ØÎĵµ£º
ListµÄÓ÷¨
List°üÀ¨List½Ó¿ÚÒÔ¼°List½Ó¿ÚµÄËùÓÐʵÏÖÀà¡£ÒòΪList½Ó¿ÚʵÏÖÁËCollection½Ó¿Ú£¬ËùÒÔList½Ó¿ÚÓµÓÐCollection½Ó¿ÚÌṩµÄËùÓг£Ó÷½·¨£¬ÓÖÒòΪListÊÇÁбíÀàÐÍ£¬ËùÒÔList½Ó¿Ú»¹ÌṩÁËһЩÊʺÏÓÚ×ÔÉíµÄ³£Ó÷½·¨£¬Èç±í1Ëùʾ¡£
±í1 List½Ó¿Ú¶¨ÒåµÄ³£Ó÷½·¨¼°¹¦ÄÜ
´Ó±í1¿ÉÒÔ¿´³ö£¬List½Ó¿ÚÌṩµÄÊʺÏÓÚ×ÔÉíµÄ ......
Ôڳɹ¦ÊµÏÖJavaµ÷ÓÃC++Ö®ºó£¬½ÓÏÂÀ´Ïëµ½ÄÜ·ñͨ¹ýJNAʵÏÖJavaµ÷ÓÃFortran£¬½ñÌìÊÔÑéÁËһϣ¬»¹ÊDZȽÏÈÝÒ׵ġ£
ÍøÉÏÓÐÒ»¸öJavaµ÷ÓÃF95µÄÀý×Ó£¬µ«ÊÇÎÒ¿¼ÂDz»½öҪʵÏÖF95µÄµ÷Ó㬻¹ÒªÊµÏÖF77µÄµ÷Óã¬ËùÒÔ·ÑÁËһЩÖÜÕÛ¡£
ÎÊÌâµÄ¹Ø¼üÔÚÓÚF77Ϊ¹ý³ÌÃû×Ô¶¯Ìí¼ÓÁËÒ»¸öβ²¿µÄÏ»®Ïߣ¬ËùÒÔsub1Õâ¸ö¹ý³Ì£¬µ½JavaÒ»¶Ë£¬¾Í±ä³ÉÁËsub1_£¬ ......
ΪÁËʵÏÖ×Ô¶¨ÒåµÄlogÀ࣬Äܹ»Êä³ö¾ßÌåµÄ´úÂëÐÐÐкţ¬Í¨¹ýʹÓÃStackTraceElement¶ÔÏóʵÏÖÁË¡£
ÕâÀïÖ¸³öÐèҪעÒâµÄ¼¸¸öÎÊÌ⣺
1. ³ÌÐòÖзµ»ØµÄ´úÂëÐÐÐкţ¬ÊÇн¨StackTrackElement¶ÔÏóµÄÄÇÒ»ÐС£
2. ¿ÉÒÔͨ¹ý´«²ÎµÄ·½·¨ÊµÏÖÊä³öÌØ¶¨ÐÐÐкš£¾ßÌåʵÏÖ¼û´úÂë¡£
1/**
2 *
3 */
4package leo.demo ......
class User {
String name;
String age;
public User(String name,String age){
this.name=name;
this.age=age;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(St ......