 
     public func setOption(option: Int32, value: Int32) {
         var val = value
-        setsockopt(rawDescriptor, SOL_SOCKET, option, &val, socklen_t(sizeof(Int32)))
+        setsockopt(rawDescriptor, SOL_SOCKET, option, &val, socklen_t(sizeof(Int32.self)))
     }
 }
 

    public init(port: UInt16, addressFamily: Socket.AddressFamily = .Inet) {
#if os(OSX) || os(tvOS) || os(watchOS) || os(iOS)
        rawValue = sockaddr_in(
            sin_len: __uint8_t(sizeof(sockaddr_in)),
            sin_family: sa_family_t(addressFamily.rawValue),
            sin_port: SocketAddress.htons(value: port),
            sin_addr: in_addr(s_addr: in_addr_t(0)),

    public func bindAddress(address: SocketAddress) throws {
        var mutable = address
        let result = mutable.withUnsafeMutablePointer { pointer in
            return bind(self.rawDescriptor, pointer, socklen_t(UInt8(sizeof(sockaddr_in.self))))
        }
        if result != 0 {
            throw SocketError.GenericError(code: result)
