Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. func isPortOpen(port: in_port_t) -> Bool {
  2.  
  3. let socketFileDescriptor = socket(AF_INET, SOCK_STREAM, 0)
  4. if socketFileDescriptor == -1 {
  5. return false
  6. }
  7.  
  8. var addr = sockaddr_in()
  9. let sizeOfSockkAddr = MemoryLayout<sockaddr_in>.size
  10. addr.sin_len = __uint8_t(sizeOfSockkAddr)
  11. addr.sin_family = sa_family_t(AF_INET)
  12. addr.sin_port = Int(OSHostByteOrder()) == OSLittleEndian ? _OSSwapInt16(port) : port
  13. addr.sin_addr = in_addr(s_addr: inet_addr("0.0.0.0"))
  14. addr.sin_zero = (0, 0, 0, 0, 0, 0, 0, 0)
  15. var bind_addr = sockaddr()
  16. memcpy(&bind_addr, &addr, Int(sizeOfSockkAddr))
  17.  
  18. if Darwin.bind(socketFileDescriptor, &bind_addr, socklen_t(sizeOfSockkAddr)) == -1 {
  19. return false
  20. }
  21. if listen(socketFileDescriptor, SOMAXCONN ) == -1 {
  22. return false
  23. }
  24. return true
  25. }
  26.  
  27. let port = UInt16(10000)
  28. print(isPortOpen(port:port))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement