1) На каком IP запустить сервер, к какому IP подключаться с клиента? А что с портами?
2) Что где настроить?
3) Вообще, конечно, хотелось бы, чтобы физически компы не были никак связаны, только через интернет. Причем подключены не обязательно к одной точке.
1) Если серверной машине не выдается динамический IP от провайдера, то все просто либо на 0.0.0.0 либо к внешнему IP серверной машины делать привязку в программе. Если серверная машина находится за NAT, то нужно пробрасывать порты, как правило NAT включен на домашнем роутере, либо у провайдера. Если NAT нет, то всё просто, на каком порту открыл сервер, на тот и подключаешься с клиента
2) Проверить, что серверный порт не блокирует фаервол/антивирус и что выбранный порт не конфликтует с заранее заданным значением (номер порта лучше выбирать > 1000).
3) TCP работает поверх IP, а протокол IP вообще нас изолирует от понятия "физически связаны", на IP уровне и выше мы оперируем асбтрактным понятием "маршрут", а не "витая пара" или "вифи коннект"