• 网络编程(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();
            }
            
            
        }

    }

  • 相关阅读:
    嫁给程序员1314的好处
    TCP/IP、Http、Socket、XMPP-从入门到深入
    Redis集群案例与场景分析
    Java程序片段
    Spring Security(08)——intercept-url配置
    python virtualenv virtualenvwrapper
    django 删除表后如何恢复
    mysql行转列,单列转多行
    mysql开发之join语句学习
    django前后端数据传输学习记录
  • 原文地址:https://www.cnblogs.com/8023-itxinde/p/5129765.html
Copyright © 2020-2023  润新知