localhost - это имя для петлевого (loopback) сетевого интерфейса компьютера, которому назначен IP-адрес 127.0.0.1. Этот сетевой интерфейс предназначен для взаимодействия приложений по протоколу TCP/IP в пределах одного устройства (компьютера).
Чтобы организовать взаимодействие в сети по протоколу TCP/IP между разными компьютерами, они должны иметь сетевые интерфейсы (адаптеры), подключённые к этой сети. Этим сетевым интерфейсам назначаются разные IP-адреса, вручную или автоматически, например, DHCP-сервером. Подсмотреть эти адреса можно в свойствах сетевого адаптера или с помощью команды ipconfig в Windows и ifconfig в Linux.
В приведенном примере переменной HOST серверной части надо присвоить IP-адрес сетевого интерфейса сервера, на который будут приниматься запросы. А в строке clientsocket.connect(('127.0.0.1', 7777)) клиентской части вместо 127.0.0.1 надо тоже указать IP-адрес сетевого интерфейса сервера (что-то вроде '192.168....' или '10.....') , куда должны отправляться запросы. Таким образом, IP-адрес клиента в данном случае интереса не представляет.
Чтобы сетевое взаимодействие осуществилось, возможно, потребуется настроить брандмауэры сервера и клиента.