ios - iOS Swift : How to check if port is open

标签 ios swift sockets port asyncsocket

在我的应用程序中要检查端口是否打开。这里引用这个链接

iOS SDK: How can I check if a port is open?



但是dnt得到任何解决方案。并引用这两个github源码,

https://github.com/swiftsocket/SwiftSocket

https://github.com/robbiehanson/CocoaAsyncSocket



但是,没有任何解决方案。任何人都可以帮助您检查端口是否打开。谢谢前进。

最佳答案

请使用以下方法将端口打开或关闭

func isPortOpen(port: in_port_t) -> Bool {

    let socketFileDescriptor = socket(AF_INET, SOCK_STREAM, 0)
    if socketFileDescriptor == -1 {
        return false
    }

    var addr = sockaddr_in()
    let sizeOfSockkAddr = MemoryLayout<sockaddr_in>.size
    addr.sin_len = __uint8_t(sizeOfSockkAddr)
    addr.sin_family = sa_family_t(AF_INET)
    addr.sin_port = Int(OSHostByteOrder()) == OSLittleEndian ? _OSSwapInt16(port) : port
    addr.sin_addr = in_addr(s_addr: inet_addr("0.0.0.0"))
    addr.sin_zero = (0, 0, 0, 0, 0, 0, 0, 0)
    var bind_addr = sockaddr()
    memcpy(&bind_addr, &addr, Int(sizeOfSockkAddr))

    if Darwin.bind(socketFileDescriptor, &bind_addr, socklen_t(sizeOfSockkAddr)) == -1 {
        return false
    }
    if listen(socketFileDescriptor, SOMAXCONN ) == -1 {
        return false
    }
    return true
}

使用方式:
let port = UInt16(10000)
print(isPortOpen(port:port))

关于ios - iOS Swift : How to check if port is open,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56167320/

相关文章:

ios - UIView.animate 未在 PHPhotoLibrary.shared().performChanges 中执行

ios - iOS 9 上不显示 UITextView 返回键类型的更改

ios - 显示进度 View 代替状态栏

ios - Facebook SDK swift : problems with fetching user data (segue)

Swift 将阴影绘制到 uibezierpath

c++ - ai_family 的有效值是多少?

android - 使用WebView的安全风险(IOS、Android)

swift - 覆盖 NSDocument 的 init(contentsOf :ofType:) in Swift

windows - 如何在 Windows 中找到进程持有的套接字列表?

php - mysql连接错误: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) Godaddy Cpanel