zoukankan      html  css  js  c++  java
  • 网络编程(ServerSocket)

    public class MyServer {
        
        

        public static void main(String[] args) {
            
            //创建服务器端
            try {
                ServerSocket server=new ServerSocket(9999);
                
                //创建集合对象存放连接的客户端
                 final List<Socket> list=new ArrayList<Socket>();
                
                 //循环接受客户端
                 while(true)
                 {
                    final Socket client = server.accept();
                     //并将客户端添加到集合中,方便管理客户端
                     list.add(client);
                    
                    
                     //创建子线程来接受客户端的发送的消息,从而保证主线程的运行
                     new Thread(){
                         public void run() {
                            
                             //接受客户端的消息
                            
                            try {
                                 BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream(), "gbk"));
                                
                                 while(true)
                                 {
                                    
                                    String data = br.readLine();
                                     //将读取的客户端的信息转发给其他客户端
                                     for(Socket cs:list)
                                     {
                                         if(cs != client)
                                         {
                                             //向其他客户端发送消息
                                             PrintWriter pw=new PrintWriter(cs.getOutputStream());
                                             pw.println(data);
                                             pw.flush();
                                         }
                                     }
                                    
                                 }
                            } catch (UnsupportedEncodingException e1) {
                                // TODO Auto-generated catch block
                                e1.printStackTrace();
                            } catch (IOException e1) {
                                // TODO Auto-generated catch block
                                e1.printStackTrace();
                            }
                            
                         };
                     }.start();
                    
                 }
                
                
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            
        }

    }

  • 相关阅读:
    Mechanism of Loading Resources
    Dashboards (Android)
    Tips: compilation and creating new projects on Android 4.0
    设备方向
    【转】字符串分割(C++)
    Moving From Objective-C to C++
    Simulate android behaviors on win32
    【ybtoj高效进阶 21265】排队问题(fhq-Treap)(构造)
    【ybtoj高效进阶 21262】头文字 D(线段树)(数学)
    【ybtoj高效进阶 21261】头文字 C(单调队列优化DP)
  • 原文地址:https://www.cnblogs.com/8023-itxinde/p/5129765.html
Copyright © 2011-2022 走看看