Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java macos上的端口绑定_Java_Sockets_Osx Server - Fatal编程技术网

Java macos上的端口绑定

Java macos上的端口绑定,java,sockets,osx-server,Java,Sockets,Osx Server,我使用java中的ServerSocket检查mysql是否正在运行。如果它没有运行,我会提示用户请运行mysql服务器。但是,我的一些用户抱怨说,尽管mysql正在运行,但我们收到了错误消息。这只发生在macos。我发现的是 Java代码: public static boolean isPortFree(int port) { if(port <= 0) { return false; } ServerSocket sock = null

我使用java中的ServerSocket检查mysql是否正在运行。如果它没有运行,我会提示用户请运行mysql服务器。但是,我的一些用户抱怨说,尽管mysql正在运行,但我们收到了错误消息。这只发生在macos。我发现的是

Java代码:

public static boolean isPortFree(int port)
{
    if(port <= 0)
    {
        return false;
    }
    ServerSocket sock = null;
    try
    {
        String bindAddress = System.getProperty("bindaddress", "127.0.0.1");
        sock = new ServerSocket(port,0,InetAddress.getByName(bindAddress));
    }
    catch(Exception ex)
    {
        return false;
    }
    finally
    {
        if (sock != null)
        {
            try
            {
                sock.close();
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        }
    }
    return true;
}
两者都是作品

Netstat

马科斯

其他操作系统

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN 
tcp4和tcp之间有什么区别吗


知道为什么会这样吗?

这两个示例有效地绑定到不同的接口:
INADDR\u Any
不阻止绑定到特定适配器


如果在OSX上MySQL的配置与您报告的“其他操作系统”完全相同,它将按预期工作。

我不明白您为什么要首先为此使用
ServerSocket
。只需尝试打开一个
插槽
至端口3306即可。如果成功,MySQL正在运行。如果不是,就不是。
 tcp4       0      0  *.3306                 *.*                    LISTEN
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN