²é¿´: 829  |  »Ø¸´: 4

×Óľ‚Ü

гæ (³õÈëÎÄ̳)

[ÇóÖú] socketͨÐÅ ÒÑÓÐ1È˲ÎÓë

ÇëÎÊÓÐË­ÓÐÒ»¸ö¼ò°æµÄjava  socketͨÐųÌÐòÂð£¿ÄÜÓÃenter¼ü·¢ËÍÏûÏ¢£¬ÏÔʾʱ¼ä£¬Ñ¡È¡ÎļþÕâЩ»ù´¡¹¦ÄÜ£¬Ð»Ð»ÁË

·¢×ÔСľ³æAndroid¿Í»§¶Ë
»Ø¸´´ËÂ¥
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

×Óľ‚Ü

гæ (³õÈëÎÄ̳)

ÇëÎÊÓÐÒ»¸ö¼ò°æµÄjava??socketͨÐųÌÐòÂð£¿ÄÜÓÃenter¼ü·¢ËÍÏûÏ¢£¬ÏÔʾʱ¼ä£¬Ñ¡È¡ÎļþÕâЩ»ù´¡¹¦ÄÜ£¬Ð»Ð»ÁË

·¢×ÔСľ³æAndroid¿Í»§¶Ë
2Â¥2017-12-29 11:30:12
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ǰ¿Çµµ°¸

ľ³æ (СÓÐÃûÆø)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

package chat;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

/**
* ÁÄÌìÊÒ¿Í»§¶Ë
* @author adminitartor
*
*/
public class Client {
        /*
         * java.net.Socket
         * ·â×°ÁËTCPͨѶЭÒ飬ʹÓÃËüÓëÔ¶³Ì¼ÆËã»ú½øÐÐ
         * ÍøÂçͨѶ¡£
         */
        private Socket socket;
        /**
         * ¹¹Ôì·½·¨£¬ÓÃÀ´³õʼ»¯¿Í»§¶Ë
         * @throws IOException
         * @throws UnknownHostException
         */
        public Client() throws UnknownHostException, IOException{
                /*
                 * ʵÀý»¯SocketÊÇÐèÒª´«ÈëÁ½¸ö²ÎÊý
                 * 1:·þÎñ¶ËipµØÖ·
                 * 2:·þÎñ¶Ë¶Ë¿Ú
                 * ͨ¹ýIPµØÖ·¿ÉÒÔÕÒµ½ÍøÂçÉϵķþÎñ¶ËËùÔڵļÆËã»ú
                 * ͨ¹ý¶Ë¿Ú¿ÉÒÔÁ¬½Óµ½¸Ã¼ÆËã»úÉϵķþÎñ¶ËÓ¦ÓóÌÐò
                 *
                 * ʵÀý»¯SocketµÄ¹ý³Ì¾ÍÊǽ¨Á¢Á¬½ÓµÄ¹ý³Ì£¬ËùÒÔÈô
                 * Á¬½Ó·þÎñ¶Ëʧ°Ü£¬ÕâÀï»áÅ׳öÒì³£¡£
                 */
                System.out.println("ÕýÔÚÓë·þÎñ¶Ë½¨Á¢Á¬½Ó...";
                socket = new Socket("localhost",8088);
                System.out.println("Óë·þÎñ¶ËÁ¬½Ó³É¹¦!";
        }
        /**
         * ¿Í»§¶ËµÄÆô¶¯·½·¨£¬´ÓÕâÀ↑ʼִÐпͻ§¶ËÂß¼­
         */
        public void start(){
                try {
                        Scanner scanner = new Scanner(System.in);
                       
                        OutputStream out = socket.getOutputStream();
                       
                        OutputStreamWriter osw
                                = new OutputStreamWriter(out,"UTF-8";
                       
                        PrintWriter pw
                                = new PrintWriter(osw,true);
                       
                        //Æô¶¯¶ÁÈ¡·þÎñ¶Ë·¢Ë͹ýÀ´ÏûÏ¢µÄÏß³Ì
                        ServerHandler handler
                                = new ServerHandler();
                        Thread t = new Thread(handler);
                        t.start();
                       
                       
                        String line = null;
                        System.out.println("¿ªÊ¼ÁÄÌì°É!";
                        //Éϴη¢ËͺóµÄʱ¼ä
                        long lasttime = System.currentTimeMillis();
                        while(true){
                                line = scanner.nextLine();
                                long curr = System.currentTimeMillis();
                                //±¾´Î·¢ËÍʱ¼äÓëÉϴη¢ËÍʱ¼äÒª¼ä¸ô1ÃëÒÔÉÏ
                                if(curr-lasttime>1000){
                                        pw.println(line);
                                        lasttime = curr;
                                }else{
                                        System.out.println("˵»°ËÙ¶ÈÌ«¿ì!";
                                }
                               
                        }
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }
       
        public static void main(String[] args) {
                try {
                        Client client = new Client();
                        client.start();
                } catch (Exception e) {
                        e.printStackTrace();
                        System.out.println("¿Í»§¶ËÆô¶¯Ê§°Ü!";
                }
        }
       
        /**
         * ¸ÃÏß³ÌÓÃÀ´Ñ­»·½ÓÊÕ·þÎñ¶Ë·¢Ë͹ýÀ´µÄÏûÏ¢²¢Êä³öµ½
         * ¿Í»§¶Ë×Ô¼ºµÄ¿ØÖÆÌ¨ÉÏ
         * @author adminitartor
         *
         */
        private class ServerHandler implements Runnable{
                public void run(){
                        try {
                                InputStream in = socket.getInputStream();
                                InputStreamReader isr
                                        = new InputStreamReader(in,"UTF-8";
                                BufferedReader br
                                        = new BufferedReader(isr);
                               
                                String message = null;
                                while((message = br.readLine())!=null){
                                        System.out.println(message);
                                }
                                       
                               
                               
                        } catch (Exception e) {
                               
                        }
                }
        }
}
¿¼ÂǵÄʱºòÄãÓÖµôÁËǽÉÏ
3Â¥2018-01-12 10:44:33
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ǰ¿Çµµ°¸

ľ³æ (СÓÐÃûÆø)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

package chat;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

/**
* ÁÄÌìÊÒ·þÎñ¶Ë
* @author adminitartor
*
*/
public class Server {
        /*
         * java.net.ServerSocket
         * ÔËÐÐÔÚ·þÎñ¶ËµÄServerSocketÖ÷ÒªÓÐÁ½¸ö×÷ÓÃ
         * 1:ÉêÇë·þÎñ¶Ë¿Ú
         * 2:¼àÌý·þÎñ¶Ë¿Ú£¬Ò»µ©Ò»¸ö¿Í»§¶Ëͨ¹ý¸Ã¶Ë¿Ú½¨Á¢
         *   Á¬½Ó£¬Ôò´´½¨Ò»¸öSocketÓÃÓÚÓë¸Ã¿Í»§¶ËͨѶ
         */
        private ServerSocket server;
        /*
         * ¸Ã¼¯ºÏÓÃÀ´´æ·ÅËùÓпͻ§¶ËµÄÊä³öÁ÷£¬ÓÃÓÚ½«ÏûÏ¢
         * ¹ã²¥¸øËùÓпͻ§¶Ë
         */
        private List<PrintWriter> allOut;
       
        public Server() throws IOException{
                /*
                 * ³õʼ»¯ServerSocketµÄͬʱÐèÒªÖ¸¶¨·þÎñ¶Ë¿Ú
                 * ¸Ã¶Ë¿ÚºÅ²»ÄÜÓëϵͳÆäËûÓ¦ÓóÌÐòÒÑÉêÇëµÄ¶Ë¿Ú
                 * ºÅÖØ¸´£¬·ñÔò»áÅ׳öÒì³£¡£
                 */
                server = new ServerSocket(8088);
               
                allOut = new ArrayList<PrintWriter>();
        }
       
        public void start(){
                try {
                        /*
                         * ServerSocketÌṩ·½·¨:
                         * Socket accept()
                         * ¸Ã·½·¨»á¼àÌýServerSocketÉêÇëµÄ·þÎñ¶Ë¿Ú
                         * ¡£ÕâÊÇÒ»¸ö×èÈû·½·¨£¬Ö±µ½Ò»¸ö¿Í»§¶Ëͨ¹ý
                         * ¸Ã¶Ë¿ÚÁ¬½Ó²Å»á·µ»ØÒ»¸öSocket¡£Õâ¸ö·µ»Ø
                         * µÄSocketÊÇÓÃÓÚÓëÁ¬½ÓµÄ¿Í»§¶Ë½øÐÐͨѶµÄ¡£
                         *
                         */
                        while(true){
                                System.out.println("µÈ´ý¿Í»§¶ËÁ¬½Ó...";
                                Socket socket = server.accept();
                                System.out.println("Ò»¸ö¿Í»§¶ËÁ¬½ÓÁË!";
                                /*
                                 * Æô¶¯Ò»¸öÏß³ÌÓë¸Ã¿Í»§¶Ë½»»¥
                                 */
                                ClientHandler handler
                                        = new ClientHandler(socket);
                                Thread t = new Thread(handler);
                                t.start();
                        }
                       
                       
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }
       
        /**
         * ½«¸ø¶¨µÄÏûÏ¢¹ã²¥¸øËùÓпͻ§¶Ë
         * @param message
         */
        private void sendMessage(String message){
                synchronized (allOut) {
                        //ת·¢¸øËùÓпͻ§¶Ë
                        for(PrintWriter o : allOut){
                                o.println(message);
                        }
                }
        }
       
        public static void main(String[] args) {
                try {
                        Server server = new Server();
                        server.start();
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }
        /**
         * ¸ÃÏß³ÌÓÃÀ´Íê³ÉÓëÖ¸¶¨¿Í»§¶Ë½»»¥µÄ¹¤×÷
         * @author adminitartor
         *
         */
        private class ClientHandler implements Runnable{
                /*
                 * µ±Ç°Ïß³Ìͨ¹ýÕâ¸öSocketÓëÖ¸¶¨¿Í»§¶Ë½»»¥
                 */
                private Socket socket;
                /*
                 * Ô¶³Ì¼ÆËã»úµØÖ·ÐÅÏ¢£¬ÕâÀïÊǿͻ§¶ËµÄµØÖ·
                 */
                private String host;
               
                public ClientHandler(Socket socket){
                        this.socket = socket;
                        /*
                         * ͨ¹ýSocket¿ÉÒÔ»ñȡԶ¶Ë¼ÆËã»úµØÖ·ÐÅÏ¢
                         */
                        InetAddress address
                                = socket.getInetAddress();
                        /*
                         * »ñȡԶ¶Ë¼ÆËã»úIPµØÖ·µÄ×Ö·û´®¸ñʽ
                         */
                        host = address.getHostAddress();
                }
               
                public void run(){
                        PrintWriter pw = null;
                        try {                       
                                /*
                                 * InputStream getInputStream()
                                 * SocketÌṩµÄ¸Ã·½·¨¿ÉÒÔ»ñȡһ¸öÊäÈëÁ÷£¬
                                 * ͨ¹ý¸ÃÁ÷¿Í»§¶ÁÈ¡µ½Ô¶¶Ë¼ÆËã»ú·¢Ë͹ýÀ´
                                 * µÄÊý¾Ý¡£
                                 */
                                InputStream in = socket.getInputStream();
                                InputStreamReader isr
                                        = new InputStreamReader(in,"UTF-8";
                                BufferedReader br
                                        = new BufferedReader(isr);
                               
                                /*
                                 * ͨ¹ýSocket»ñÈ¡Êä³öÁ÷£¬ÓÃÓÚ½«Êý¾Ý·¢ËÍ
                                 * ¸ø¿Í»§¶Ë
                                 */
                                OutputStream out = socket.getOutputStream();
                                OutputStreamWriter osw
                                        = new OutputStreamWriter(out,"UTF-8";
                                pw = new PrintWriter(osw,true);
                               
                                /*
                                 * ½«¸Ã¿Í»§¶ËµÄÊä³öÁ÷´æÈëµ½¹²Ïí¼¯ºÏÖÐ
                                 *
                                 * ÓÉÓÚ¶à¸öÏ̶߳¼»áµ÷Óøü¯ºÏµÄadd·½·¨ÏòÆäÖÐ
                                 * Ìí¼ÓÊä³öÁ÷£¬ËùÒÔΪÁ˱£Ö¤Ḭ̈߳²È«£¬¿ÉÒÔ½«
                                 * ¸Ã¼¯ºÏ¼ÓËø¡£
                                 */
                                synchronized (allOut) {
                                        allOut.add(pw);
                                }
                               
                               
                               
                               
                                sendMessage(host+"ÉÏÏßÁË!,µ±Ç°ÔÚÏß"+allOut.size()+"ÈË";
                               
                                String message = null;
                                while((message = br.readLine())!=null){
//                                        System.out.println(host+"˵:"+message);
                                        //»Ø¸´¸øµ±Ç°¿Í»§¶Ë
//                                        pw.println(host+"˵:"+message);
                                       
                                        sendMessage(host+"˵:"+message);
                                }
                               
                               
                        } catch (Exception e) {
                               
                        } finally{
                                //´¦Àí¿Í»§¶Ë¶Ï¿ªÁ¬½ÓÒÔºóµÄ¹¤×÷
                               
                                synchronized (allOut) {
                                        //½«¸Ã¿Í»§¶ËµÄÊä³öÁ÷´Ó¹²Ïí¼¯ºÏÖÐɾ³ý
                                        allOut.remove(pw);
                                }
                               
                               
                                sendMessage(host+"ÏÂÏßÁË!,µ±Ç°ÔÚÏß"+allOut.size()+"ÈË";
                               
                                if(socket != null){
                                        try {
                                                socket.close();
                                        } catch (IOException e) {
                                                e.printStackTrace();
                                        }
                                }
                        }
                }
        }
       
}
¿¼ÂǵÄʱºòÄãÓÖµôÁËǽÉÏ
4Â¥2018-01-12 10:45:16
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ǰ¿Çµµ°¸

ľ³æ (СÓÐÃûÆø)

»òÐíÄã¿ÉÒÔÔÚÍøÉÏÕÒµ½exe»òÕßapp
¿¼ÂǵÄʱºòÄãÓÖµôÁËǽÉÏ
5Â¥2018-01-12 10:46:33
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ ×Óľ‚Ü µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 354Çóµ÷¼Á +4 Tyoumou 2026-03-18 7/350 2026-03-18 21:45 by Tyoumou
[¿¼ÑÐ] 311Çóµ÷¼Á +6 26ÑÐ0 2026-03-15 6/300 2026-03-18 14:43 by haxia
[¿¼ÑÐ] »¯¹¤Ñ§Ë¶306Çóµ÷¼Á +10 42838695 2026-03-12 10/500 2026-03-18 14:42 by haxia
[¿¼ÑÐ] 331Çóµ÷¼Á£¨0703Óлú»¯Ñ§ +7 ZY-05 2026-03-13 8/400 2026-03-18 14:13 by 007_lilei
[¿¼ÑÐ] 307Çóµ÷¼Á +3 ÀäóÏ123 2026-03-17 3/150 2026-03-18 09:55 by macy2011
[¿¼ÑÐ] 277µ÷¼Á +5 ×ÔÓɼå±ý¹û×Ó 2026-03-16 6/300 2026-03-17 19:26 by Àîleezz
[¿¼ÑÐ] 308Çóµ÷¼Á +4 ÊÇLupa°¡ 2026-03-16 4/200 2026-03-17 17:12 by ruiyingmiao
[¿¼ÑÐ] ÓÐûÓеÀÌú/ÍÁľµÄÏëµ÷¼ÁÄÏÁÖ£¬¸ø×Ô¼ºÕÐʦµÜÖС« +3 TqlXswl 2026-03-16 7/350 2026-03-17 15:23 by TqlXswl
[¿¼ÑÐ] [µ¼Ê¦ÍƼö]Î÷ÄϿƼ¼´óѧ¹ú·À/²ÄÁϵ¼Ê¦ÍƼö +3 ¼â½ÇСºÉ 2026-03-16 6/300 2026-03-16 23:21 by ¼â½ÇСºÉ
[¿¼ÑÐ] ¶«ÄÏ´óѧ364Çóµ÷¼Á +5 JasonYuiui 2026-03-15 5/250 2026-03-16 21:28 by ľ¹Ï¸à
[¿¼ÑÐ] 326Çóµ÷¼Á +4 ŵ±´¶û»¯Ñ§½±êéê 2026-03-15 7/350 2026-03-16 17:11 by ŵ±´¶û»¯Ñ§½±êéê
[¿¼ÑÐ] 070300»¯Ñ§Ñ§Ë¶Çóµ÷¼Á +6 Ì«Ïë½ø²½ÁË0608 2026-03-16 6/300 2026-03-16 16:13 by kykm678
[¿¼ÑÐ] 085600µ÷¼Á +5 ÑúÑú123sun 2026-03-12 6/300 2026-03-16 15:58 by ÑúÑú123sun
[¿¼ÑÐ] 085600²ÄÁÏÓ뻯¹¤ Çóµ÷¼Á +13 enenenhui 2026-03-13 14/700 2026-03-16 15:19 by ÁËÁËÁËÁË¡£¡£
[¿¼ÑÐ] 080500£¬²ÄÁÏѧ˶302·ÖÇóµ÷¼ÁѧУ +4 ³õʶ¿ÉÀÖ 2026-03-14 5/250 2026-03-14 21:08 by peike
[¿¼ÑÐ] Öпƴó²ÄÁÏר˶319Çóµ÷¼Á +3 ÃÏöβÄÁÏ 2026-03-13 3/150 2026-03-14 18:10 by houyaoxu
[¿¼ÑÐ] 297Ò»Ö¾Ô¸ÉϽ»085600Çóµ÷¼Á +5 Ö¸¼â°ËǧÀï 2026-03-14 5/250 2026-03-14 17:26 by a²»Ò×
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤£¨0856£©304ÇóBÇøµ÷¼Á +6 Çñgl 2026-03-12 7/350 2026-03-13 23:24 by Çñgl
[¿¼ÑÐ] 281Çóµ÷¼Á +9 Koxui 2026-03-12 11/550 2026-03-13 20:50 by Koxui
[¿¼ÑÐ] ²ÄÁÏ301·ÖÇóµ÷¼Á +5 Liyouyumairs 2026-03-12 5/250 2026-03-13 14:42 by JourneyLucky
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û