All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.orion.net.socket.Sockets Maven / Gradle / Ivy

The newest version!
package com.orion.net.socket;

import com.orion.lang.utils.Valid;

import java.io.IOException;
import java.net.ServerSocket;

/**
 * Socket 工具
 *
 * @author Jiahang Li
 * @version 1.0.0
 * @since 2020/9/16 11:23
 */
public class Sockets {

    private Sockets() {
    }

    /**
     * 获取一个指定端口中可用端口的 ServerSocket
     *
     * @param ports 端口
     * @return ServerSocket 未找到返回null
     */
    public static ServerSocket create(int[] ports) {
        for (int port : ports) {
            try {
                return new ServerSocket(port);
            } catch (IOException ex) {
                // try next port
            }
        }
        return null;
    }

    /**
     * 获取一个可用端口的 ServerSocket (5000 - 65535]
     *
     * @return ServerSocket 未找到返回null
     */
    public static ServerSocket create() {
        return create(5001, 65535);
    }

    /**
     * 获取一个指定端口范围中可用端口的 ServerSocket
     *
     * @param start 端口开始 > 1000
     * @param end   端口结束 <= 65535
     * @return ServerSocket 未找到返回null
     */
    public static ServerSocket create(int start, int end) {
        Valid.gt(start, 1000, "start port must greater than 1000");
        Valid.gt(end, 1000, "end port must greater than 1000");
        Valid.lte(end, 65535, "end port must less than 65536");
        for (int i = start; i <= end; i++) {
            try {
                return new ServerSocket(i);
            } catch (IOException ex) {
                // try next port
            }
        }
        return null;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy