As a waitress, this is how I stop middle-aged guys from being sleazy. After he makes a gross comment, ask his name. Now NO MATTER WHAT he responds with, reply excitedly, “That’s my Dad’s name!”
If you can somehow ask if he has children around your age, that doubles the shame factor. I have yet to have this backfire, and some of my coworkers have adopted the practice too, with great success.