All cruise ships have wifi, but it can be pricey. It's $!5 a day on Royal Caribean, and that's one of the cheaper ones. Just make sure you keep your data and roaming turned off, and then turn wifi on to prevent nasty surprises.
Most ports have wifi, either free, or for under $10. The crew always know where free wifi is in ports, so you can ask them.