Java±à³ÌÄÇЩʶù102——ÍøÂç±à³Ì¼¼Êõ1
13.2.1 ÍøÂç±à³Ì²½Öè
°´ÕÕÇ°ÃæµÄ»ù´¡ÖªÊ¶½éÉÜ£¬ÎÞÂÛʹÓÃTCP·½Ê½»¹ÊÇUDP·½Ê½½øÐÐÍøÂçͨѶ£¬ÍøÂç±à³Ì¶¼ÊÇÓɿͻ§¶ËºÍ·þÎñÆ÷¶Ë×é³É¡£µ±È»£¬B/S½á¹¹µÄ±à³ÌÖÐÖ»ÐèҪʵÏÖ·þÎñÆ÷¶Ë¼´¿É¡£ËùÒÔ£¬ÏÂÃæ½éÉÜÍøÂç±à³ÌµÄ²½Öèʱ£¬¾ùÒÔC/S½á¹¹Îª»ù´¡½øÐнéÉÜ¡£
˵Ã÷£ºÕâÀïµÄ²½ÖèʵÏÖºÍÓïÑÔÎ޹أ¬Ò²¾ÍÊÇ˵£¬Õâ¸ö²½ÖèÊÊÓÃÓÚ¸÷ÖÖÓïÑÔʵÏÖ£¬²»¾ÖÏÞÓÚJavaÓïÑÔ¡£
13.2.1.1 ¿Í»§¶ËÍøÂç±à³Ì²½Öè
¿Í»§¶Ë(Client)ÊÇÖ¸ÍøÂç±à³ÌÖÐÊ×ÏÈ·¢ÆðÁ¬½ÓµÄ³ÌÐò£¬¿Í»§¶ËÒ»°ãʵÏÖ³ÌÐò½çÃæºÍ»ù±¾Â߼ʵÏÖ£¬ÔÚ½øÐÐʵ¼ÊµÄ¿Í»§¶Ë±à³Ìʱ£¬ÎÞÂÛ¿Í»§¶Ë¸´ÔÓ»¹ÊǼòµ¥£¬ÒÔ¼°¿Í»§¶ËʵÏֵķ½Ê½£¬¿Í»§¶ËµÄ±à³ÌÖ÷ÒªÓÉÈý¸ö²½ÖèʵÏÖ£º
1¡¢ ½¨Á¢ÍøÂçÁ¬½Ó
¿Í»§¶ËÍøÂç±à³ÌµÄµÚÒ»²½¶¼Êǽ¨Á¢ÍøÂçÁ¬½Ó¡£ÔÚ½¨Á¢ÍøÂçÁ¬½ÓʱÐèÒªÖ¸¶¨Á¬½Óµ½µÄ·þÎñÆ÷µÄIPµØÖ·ºÍ¶Ë¿ÚºÅ£¬½¨Á¢Íê³ÉÒԺ󣬻áÐγÉÒ»ÌõÐéÄâµÄÁ¬½Ó£¬ºóÐøµÄ²Ù×÷¾Í¿ÉÒÔͨ¹ý¸ÃÁ¬½ÓʵÏÖÊý¾Ý½»»»ÁË¡£
2¡¢ ½»»»Êý¾Ý
Á¬½Ó½¨Á¢ÒԺ󣬾ͿÉÒÔͨ¹ýÕâ¸öÁ¬½Ó½»»»Êý¾ÝÁË¡£½»»»Êý¾ÝÑϸñ°´ÕÕÇëÇóÏìӦģÐͽøÐУ¬Óɿͻ§¶Ë·¢ËÍÒ»¸öÇëÇóÊý¾Ýµ½·þÎñÆ÷£¬·þÎñÆ÷·´À¡Ò»¸öÏìÓ¦Êý¾Ý¸ø¿Í»§¶Ë£¬Èç¹û¿Í»§¶Ë²»·¢ËÍÇëÇóÔò·þÎñÆ÷¶Ë¾Í²»ÏìÓ¦¡£
¸ù¾ÝÂß¼ÐèÒª£¬¿ÉÒÔ¶à´Î½»»»Êý¾Ý£¬µ«ÊÇ»¹ÊDZØÐë×ñÑÇëÇóÏìӦģÐÍ¡£
3¡¢ ¹Ø±ÕÍøÂçÁ¬½Ó
ÔÚÊý¾Ý½»»»Íê³ÉÒԺ󣬹رÕÍøÂçÁ¬½Ó£¬ÊͷųÌÐòÕ¼ÓõĶ˿ڡ¢ÄÚ´æµÈϵͳ×ÊÔ´£¬½áÊøÍøÂç±à³Ì¡£
×î»ù±¾µÄ²½ÖèÒ»°ã¶¼ÊÇÕâÈý¸ö²½Ö裬ÔÚʵ¼ÊʵÏÖʱ£¬²½Öè2»á³öÏÖÖØ¸´£¬ÔÚ½øÐдúÂë×é֯ʱ£¬ÓÉÓÚÍøÂç±à³ÌÊDZȽϺÄʱµÄ²Ù×÷£¬ËùÒÔÒ»°ã¿ªÆôרÃŵÄÏÖ³¡½øÐÐÍøÂçͨѶ¡£
13.2.1.2 ·þÎñÆ÷¶ËÍøÂç±à³Ì²½Öè
·þÎñÆ÷¶Ë(Server)ÊÇÖ¸ÔÚÍøÂç±à³ÌÖб»¶¯µÈ´ýÁ¬½ÓµÄ³ÌÐò£¬·þÎñÆ÷¶ËÒ»°ãʵÏÖ³ÌÐòµÄºËÐÄÂß¼ÒÔ¼°Êý¾Ý´æ´¢µÈºËÐŦÄÜ¡£·þÎñÆ÷¶ËµÄ±à³Ì²½ÖèºÍ¿Í»§¶Ë²»Í¬£¬ÊÇÓÉËĸö²½ÖèʵÏÖ£¬ÒÀ´ÎÊÇ£º
1¡¢ ¼àÌý¶Ë¿Ú
·þÎñÆ÷¶ËÊôÓÚ±»¶¯µÈ´ýÁ¬½Ó£¬ËùÒÔ·þÎñÆ÷¶ËÆô¶¯ÒԺ󣬲»ÐèÒª·¢ÆðÁ¬½Ó£¬¶øÖ»ÐèÒª¼àÌý±¾µØ¼ÆËã»úµÄij¸ö¹Ì¶¨¶Ë¿Ú¼´¿É¡£
Õâ¸ö¶Ë¿Ú¾ÍÊÇ·þÎñÆ÷¶Ë¿ª·Å¸ø¿Í»§¶ËµÄ¶Ë¿Ú£¬·þÎñÆ÷¶Ë³ÌÐòÔËÐеı¾µØ¼ÆËã»úµÄIPµØÖ·¾ÍÊÇ·þÎñÆ÷¶Ë³ÌÐòµÄIPµØÖ·¡£
2¡¢ »ñµÃÁ¬½Ó
µ±¿Í»§¶ËÁ¬½Óµ½·þÎñÆ÷¶Ëʱ£¬·þÎñÆ÷¶Ë¾Í¿ÉÒ
Ïà¹ØÎĵµ£º
ÔÚJavaÖУ¬synchronized¹Ø¼ü×ÖΪ·ÀÖ¹×ÊÔ´³åÍ»ÌṩÁËÖ§³Ö£¬Æä×÷ÓÃÓòÓжþÖÖ£º
ʵÀý·¶Î§¡£
¶ÔÏóʵÀý·¶Î§ÄÚsynchronizedʹÓõÄÁ½ÖÖÐÎʽ£º
ʵÀý·¶Î§Í¬²½·½·¨
publicd class syncTest {
…
synchronized void aMethod() {
//ÐèҪͬ²½Ê¹ÓõĴúÂë
}
}
synchronized aMethod(){}¿ÉÒÔ·ÀÖ¹¶à¸öÏß³Ìͬʱ ......
transientÊÇJavaÓïÑԵĹؼü×Ö£¬ÓÃÀ´±íʾһ¸öÓò²»ÊǸöÔÏó´®Ðл¯µÄÒ»²¿·Ö¡£µ±Ò»¸ö¶ÔÏó±»´®Ðл¯µÄʱºò£¬transientÐͱäÁ¿µÄÖµ²»°üÀ¨ÔÚ´®Ðл¯µÄ±íʾÖУ¬È»¶ø·ÇtransientÐ͵ıäÁ¿ÊDZ»°üÀ¨½øÈ¥µÄ!
public class User implements Serializable{
private static final long serialVersionUID = 1L;
private Integer id;
......
·½·¨µÄÖØÔØ
£ºÍ¬Ò»¸öÀàÀïÃæ·½·¨µÄÃû×ÖÏàͬ£¬·½·¨µÄ²ÎÊýÏÖ÷ÒªÊDzÎÊýÀàÐÍ£¬²ÎÊý¸öÊý£©
²»Í¬
,
·µ»ØÀàÐÍ¿ÉÄܲ»Í¬¡£
ÖØÔØ·½·¨¿ÉÒÔ¾ßÓв»Í¬µÄ·µ»ØÀàÐÍ£¬µ«·µ»ØÀàÐͱ¾Éí²»×ãÒÔÇø·Ö·½·¨µÄÁ½¸ö°æ
±¾¡£ ......
import java.util.Scanner;
public class Game{
void welcome(){
println("»¶ÓÀ´µ½¼ôµ¶Ê¯Í·²¼ÓÎÏ·");
}
Choice getUserChoice(){
println("ÇëÑ¡Ôñ\t[1]¼ôµ¶\t[2]ʯͷ\t[3]²¼");
Scanner sc= new Scanner(System.in);
int userCh ......
Ò»¡¢Ê²Ã´ÊÇ·´É䣺
·´ÉäµÄ¸ÅÄîÊÇÓÉSmithÔÚ1982ÄêÊ×´ÎÌá³öµÄ£¬Ö÷ÒªÊÇÖ¸³ÌÐò¿ÉÒÔ·ÃÎÊ¡¢¼ì²âºÍÐÞ¸ÄËü±¾Éí״̬»òÐÐΪµÄÒ»ÖÖÄÜÁ¦¡£ÕâÒ»¸ÅÄîµÄÌá³öºÜ¿ìÒý·¢Á˼ÆËã»ú¿ÆÑ§ÁìÓò¹ØÓÚÓ¦Ó÷´ÉäÐÔµÄÑо¿¡£ËüÊ×Ïȱ»³ÌÐòÓïÑÔµÄÉè¼ÆÁìÓòËù²ÉÓÃ,²¢ÔÚLispºÍÃæÏò¶ÔÏó·½ÃæÈ¡µÃÁ˳ɼ¨¡£ÆäÖÐLEAD/LEAD++ ¡¢OpenC++ ¡¢MetaXaºÍOpenJavaµÈ¾ÍÊÇ»ùÓÚ·´ ......