use ports instead of sockets