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¡¢ »ñµÃÁ¬½Ó
µ±¿Í»§¶ËÁ¬½Óµ½·þÎñÆ÷¶Ëʱ£¬·þÎñÆ÷¶Ë¾Í¿ÉÒ
Ïà¹ØÎĵµ£º
ÀàµÄ³õʼ»¯ºÍ¶ÔÏó³õʼ»¯ÊÇ JVM ¹ÜÀíµÄÀàÐÍÉúÃüÖÜÆÚÖзdz£ÖØÒªµÄÁ½¸ö»·½Ú£¬Google ÁËÒ»±éÍøÂ磬ÓйØÀà×°ÔØ»úÖÆµÄÎÄÕµ¹ÊDz»ÉÙ£¬È»¶øÀà³õʼ»¯ºÍ¶ÔÏó³õʼ»¯µÄÎÄÕ²¢²»¶à£¬ÌرðÊÇ´Ó×Ö½ÚÂëºÍ JVM ²ã´ÎÀ´·ÖÎöµÄÎÄÕ¸üÊÇÏÊÓÐËù¼û¡£
±¾ÎÄÖ÷Òª¶ÔÀàºÍ¶ÔÏó³õʼ»¯È«¹ý³Ì½øÐзÖÎö£¬Í¨¹ýÒ»¸öʵ¼ÊÎÊÌâÒýÈ룬½«Ô´´úÂëת»»³É JVM ×Ö½ÚÂëºó£¬ ......
½ñÌì¹Û¿´ÁËÀ¶É½ÀÏʦjava±³ºóµÄÃØÃÜÏà¹ØÊÓÆµ£¬·¢ÏÖÒªÏëд³ö¸ßÐÔÄܵijÌÐò£¬Ò»¶¨Òª¶ÔÆäÔËÐÐÔÀíÒÔ¼°ÆäÔËÐл·¾³ÓÐÏ൱³Ì¶ÈµÄÁ˽⡣ÄÇClassLoaderÊÇÏ൱¹Ø¼üµÄÒ»¸ö²¿·Ö¡£
ÏÈ˵ÏÂjava³ÌÐòÔËÐеĻù±¾Á÷³Ì£¬ÏȽ«javaÎļþ±àÒëΪclassÎļþ£¬È»ºóͨ¹ýClassLoader£¨Àà¼ÓÔØÆ÷£©£¬¼ÓÔØµ½Runtime Data Area£¨ÀàËÆÓÚÄڴ棩ÖÐ ......
´óѧµÄʱºòÑ¡ÐÞ¹ýÒ»¸öѧÆÚÈÕÓµ±Ê±ÈÕÓïÀÏʦ¶ÔÎÒÃÇ˵£º“¶ÔÓÚÖйúÈËÀ´½²£¬Ñ§Ï°Ó¢ÓïÒ»°ãÊÇ¿Þ׎øÈ¥£¬Ð¦×ųöÀ´£»Ñ§Ï°ÈÕÓïÔòÊÇЦ׎øÈ¥£¬¿Þ×ųöÀ´”¡£Òâ˼¾ÍÊÇ˵ѧϰӢÓïµÄʱºò£¬ÈëÃŵÄʱºò±È½ÏÀ§ÄÑ£¬µ«ÊÇÖ»Òª¼á³ÖѧÏÂÈ¥£¬×ª±äÁ˺ºÓïµÄ˼άϰ¹ßʱ£¬×î½ü¿ÉÒÔ°ÑÓ¢ÓïѧµÃºÜºÃ¡£¶øÈÕÓﲻͬ£¬Ò»·½ÃæÒòΪÆäÓ뺺ÓïµÄ½ôÃÜ¹Ø ......
game
server responsibility:
Initialize
the server socke;
Wait
for a client to connect;
Accept
the client connection;
Create
a daemon thread to support the clien;
Go
back to step 2.
game daemon responsibility:
Accept
client player connection;
Pair
......
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 ......