ΪʲôJavaƽ̨ÄÜÇøµÃÈç´Ë´óµÄ³É¹¦ÄØ£¿ËüµÄÒ»¸öÖ÷ÒªÔÒòÊÇÒòΪËü´ÓÒ»¿ªÊ¼¾Í»ñµÃÁËÍøÂçµÄÖ§³Ö¡£ÔÚÕâÆªÎÄÕÂÖУ¬ÎÒ½«Ïò´ó¼Ò½éÉÜÈçºÎʹÓÃJava socketsʵÏÖ»ù±¾µÄÍøÂç±à³Ì¡£
ʲôÊÇsockets£¿
TCP/IPÐÒéÊÇÒ»¸ö·Ç³£ÖØÒªµÄ¹¤¾ß£¬ËüÔÚÆóÒµÓ¦ÓÃÈí¼þÖеÄ×éÖ¯·Ö²¼Ê½¼ÆËãºÍͨÐÅ·½ÃæÓй㷺µÄÓ¦Óá£TCPÐÒéÖ÷Òª´¦Àí´«Êä¿ØÖÆÈÎÎñ£¬¶øIPÐÒéÖ÷Òª·þÎñÓÚ·â×°µÄTCP°üÊý¾Ý£¬Ìá¹©ÍøÂçºÍѰַÄÜÁ¦¡£»¹ÓÐÁíÍâµÄÒ»¸ö´«ÊäÐÒé²ã¡ª¡ªÓû§Êý¾Ý±¨ÐÒ飨UDP£©£¬ËüÊÇÒ»ÖÖÎÞÁ¬½ÓÊý¾Ý°üÐÒé¡£±»Ñ¹Ëõµ½IP°üÖС£ÒòΪUDP°ü´«Êä²»ÐèÒªÁ¬½Ó£¬ËùÒÔ£¬ËüÊÇÒ»ÖÖûÓÐÈ·ÈÏÐÅÏ¢µÄÏûÏ¢»úÖÆ¡£ËäÈ»ËüµÄËٶȷdz£¿ì£¬µ«ÊDz»¿É¿¿¡£
ÔÚÈκÎÊý¾Ý´«Êäǰ¶¼±ØÐëÔڻµÄTCPÁ¬½ÓµÄÁ½¶Ë´ò¿ªsockets¡£´ÓJava³ÌÐòÔ±µÄ¹ÛµãÀ´¿´£¬socketsÊÇÒ»¸ö·¢ËÍÊý¾ÝµÄͨµÀ£¬Ò²ÊÇÒ»¸ö½ÓÊÕÊý¾ÝµÄͨµÀ£¬Ëü¿ÉÒÔ½ÓÊÕ´ÓÆäËüµÄ¼ÆËã»úÉϵÄÁíÒ»¸öÓ¦ÓóÌÐò·¢Ë͹ýÀ´µÄÊý¾Ý¡£
ΪÁ˶ÔTCPÁ¬½Ó½øÐгõʼ»¯£¬Äã¿ÉÒÔʹÓñê×¼µÄJava¿âº¯Êýjava.net°üÖеÄÀà¡£Õâ¸ö°üÖаüº¬socketsÔÚÈκλ·¾³Ï¹¤×÷ËùÐèÒªµÄÀ࣬ËùÒÔÄãµÄJavaÕæÕýµØ±£ÁôÁËÆ½Ì¨¶ÀÁ¢ÐÔ¡£
µ÷ÓÃjava.netµÄÀ౻ת»»³Éµ÷ÓòÙ×÷ϵͳµÄAPI£¬ËùÓÐTCP/IPʵÏÖµÄϸ½Ú¶¼±»Èí¼þ¿ª·¢ÈËÔ±Òþ²ØÁË¡£¶ÔÓÚTCP sockets£¬ÄãÐèҪʹÓÃInetAddress¡¢SocketºÍ ServerSocket°ü¡£¶ÔÓÚUDP sockets£¬ÄãÐèҪʹÓÃDatagramSocketÀàºÍDatagramPacketÀà¡£
ÄãÉõÖÁ¿ÉÒÔÔÚTCP»òÕßUDPµÄ»ù´¡ÊÇ´´½¨ÐµÄÍøÂçÐÒ顣ΪÁË´ïµ½Õâ¸öÄ¿µÄ£¬ÄãÐèҪʹÓÃÌØÊâµÄÀàºÍ½çÃæ£¬°üÀ¨SocketImplFactory¡¢ SocketImplºÍ DatagramSocketImpl¡£
·þÎñÆ÷¶Ë
ÎÒÏÂÃæ½«Ð´Ò»¸öСµÄ¿Í»§/·þÎñÆ÷Ó¦ÓóÌÐò£¬ÆäÖаüÀ¨ÔÚ·þÎñÆ÷Éϲ»¶Ï¼àÌýÀ´µ½µÄÁ¬½ÓÇëÇ󣬺ÍÔÚ¿Í»§¶ËÓ¦ÓóÌÐòÁ¬½Ó·þÎñÆ÷µÄ½ø³ÌºÍ´«ÊäÊý¾Ý¡£ÕâÁ½¸ö³ÌÐòÊǶÀÁ¢ÔËÐеģ¬ËüÃÇҪװÔÚ²»Í¬µÄÖ÷»úÉÏ¡£
×ʼ£¬·þÎñÆ÷³ÌÐò´´½¨Ò»¸öеÄServerSocket¶ÔÏó£¬Õâ¸ö¶ÔÏóÊÇÓÃÀ´¼àÌýÖ¸¶¨µÄ¶Ë¿ÚµÄ¡££¨ÔÚ±àд·þÎñÆ÷Ó¦ÓóÌÐòµÄʱºò£¬ÐèҪѡÔñÒ»¸öûÓб»ÆäËü·þÎñÕ¼ÓõĶ˿ڡ££©ÏÂÃæµÄÀý×ÓÖУ¬·þÎñÆ÷¼àÌýÁ˶˿Ú4444£º
import java.io.*;
import java.net.*;
¡
try {
serverSocket = new ServerSocket(4444);
} catch (IOException e) {
System.out.println("Could not listen on port: 4444");
System.exit(-1);
}
ServerSocketÊÇjava.netµÄÒ»¸öÀ࣬ËüÌṩÁËÒ»¸öÔÚ·þÎñÆ÷¶Ë¶ÀÁ¢µÄʵÏÖ¿Í»§/·þÎñÆ÷socketÁ¬½Ó¡£Èç¹ûÎÒÃDz»ÄܼàÌýÖ¸¶¨µÄ¶Ë¿Ú£¬ServerSocket¹¹ÔìÆ÷½«Å׳öÒ»¸öÒì³££¨ÀýÈ磬µ±¶Ë¿Ú±»Õ¼ÓõÄʱºò½«Å׳öÒ»¸öÒì³££©¡£
Èç¹û·þÎñÆ÷ÄÜÓë¶Ë¿Ú³É¹¦µÄ°ó¶¨£¬ÄÇôServerSocket¶ÔÏó¾Í±»´´½¨ÁË£¬Õâʱºò£¬ÏÂÒ»²½¾ÍÊÇ¡ª¡ª½ÓÊÜÀ´×Ô¿Í»§¶ËµÄÁ¬½Ó¡£
Socket clientSocket = null;
try {
clientSocket = serverSocket.accept();
} catch (IOException e) {
System.out.println("Accept failed: 4444");
System.exit(-1);
}
Accept·½·¨Ò»Ö±´¦Óڵȴý״̬£¬Ö±µ½¿Í»§¶Ë¿ªÊ¼ÒªÇóÓëÖ÷»úºÍ¸Ã·þÎñÆ÷ËùÖ¸¶¨µÄ¶Ë¿Ú½øÐÐÁ¬½ÓµÄʱºò¡£µ±ÐèÒªÁ¬½Ó²¢³É¹¦´´½¨Á¬½ÓµÄʱºò£¬accept·½·¨·µ»ØÒ»¸öеÄSocket¶ÔÏó£¬Õâ¸ö¶ÔÏóÓëÏàͬµÄ±¾µØ¶Ë¿Ú°ó¶¨£¬²¢°üº¬ËüµÄ¿Í»§¶ËµÄÔ¶³ÌµØÖ·ºÍÔ¶³Ì¶Ë¿ÚÉèÖá£
·þÎñÆ÷ÓÃÕâ¸öеÄSocketÓë¿Í»§¶ËͨÐÅ£¬Í¬Ê±¼ÌÐøÔÚ³õʼµÄServerSocketÉϵļàÌý¿Í»§¶ËµÄÁ¬½ÓÇëÇó¡££¨Õâ¸öÌØÊâµÄ³ÌÐò°æ±¾²»ÐèÒª¼àÌý¸ü¶àµÄ¿Í»§Á¬½ÓÇëÇó¡££©
Óû§ÆÀÂÛ