zoukankan      html  css  js  c++  java
  • 多个客户端连接socket

    import java.io.DataInputStream;  
    import java.io.DataOutputStream;  
    import java.io.IOException;  
    import java.net.ServerSocket;  
    import java.net.Socket;  
      
    /** 
     * 服务器返回用户输入的信息, 为多个用户提供服务:为每个客户分配一个工作线程 
     */  
    public class ChatServers {  
        private int port = 8189;// 默认服务器端口  
      
        public ChatServers() {  
        }  
      
        // 创建指定端口的服务器  
        public ChatServers(int port) {  
            this.port = port;  
        }  
      
        public void service() {  
           
            try {  
                // 建立服务器连接,设定客户连接请求队列的长度  
                ServerSocket server = new ServerSocket(port,3);  
                while (true) {  
                    // 等待客户连接  
                    Socket socket = server.accept();  
                socket.setSoTimeout(15000);         
                    new Thread(new ServerThread(socket)).start();  
                }  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }  
      
        public static void main(String[] args) {  
            new ChatServers().service();  
        }  
    }  
      
    class ServerThread implements Runnable {  
        private Socket socket;  
      
        public ServerThread(Socket socket) {  
            this.socket = socket;  
        }  
      
        // 任务是为一个用户提供服务  
        @Override  
        public void run() {  
            try {  
                try {  
                    // 读取客户端传过来信息的DataInputStream  
                    DataInputStream in = new DataInputStream(socket  
                            .getInputStream());  
                    // 向客户端发送信息的DataOutputStream  
                    DataOutputStream out = new DataOutputStream(socket  
                            .getOutputStream());  
                    while (true) {  
                        // 读取来自客户端的信息  
                        String accpet = in.readUTF();  
                        out.writeUTF("服务器:" + accpet);  
                    }  
                } finally {// 建立连接失败的话不会执行socket.close();  
                    socket.close();  
                }  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }  
    }  
    

      

  • 相关阅读:
    机器学习框架之sklearn简介
    ubuntu 16.04下使用 python pip的安装问题。
    ubuntu 16.04 搭建git小型服务器
    使用config 来管理ssh的会话
    【linux】su、sudo、sudo su、sudo -i的用法和区别
    【python】确保文件写入结束
    【python】描述符descriptor
    【python】类(资料+疑惑)
    【pymongo】mongodb cursor id not valid error
    【python】继承关系和isinstance
  • 原文地址:https://www.cnblogs.com/nicebaby/p/6323326.html
Copyright © 2011-2022 走看看