码迷,mamicode.com
首页 > 其他好文 > 详细

多个客户端连接socket

时间:2017-01-20 18:08:00      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:指定端口   main   客户   new   runnable   imp   ice   指定   建立   

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();  
        }  
    }  
}  

  

多个客户端连接socket

标签:指定端口   main   客户   new   runnable   imp   ice   指定   建立   

原文地址:http://www.cnblogs.com/nicebaby/p/6323326.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!