多个客户端连接socket

Posted 且穷且独立

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多个客户端连接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();  
        }  
    }  
}  

  

以上是关于多个客户端连接socket的主要内容,如果未能解决你的问题,请参考以下文章

c调用 socket 如果客户端连接断开,怎么判断? 还有怎么向多个 连接在一个服务器上的多个客户

socket网络编程:加上连接循环(代码完善)

多个客户端连接socket

windows socket 服务器使用select模型连接多个客户端

c# socket多连接(如何达到10万个客户端)

Socket编程——怎么实现一个服务器多个客户端之间的连接