Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement