La dirección del cliente es la del ordenador local, así que no hay que especificarla, porque ya la conocemos.Esto en realidad es algo más complejo, porque un ordenador puede tener varias IPs (normalmente, como mínimo hay dos: la IP de localhost, 127.0.0.1, y una IP de red), y a veces es necesario especificar la IP que se quiere usar.El puerto también se escoge automáticamente, aunque también creo recordar que se podía especificar un rango o algo así. Pero esto es mucho menos común que especificar una IP.
esa chorrada no es un entero long, así que cómo es posible que la variable s_addr permite que le ingresen eso.
Ahora bien, si ingresaramos algo como 128.162.190.160 por pantalla, de qué forma esto se podría almacenar en la variable unsigned long s_addr?
The inet_addr() function converts the Internet host address cp from IPv4 numbers-and-dots notation into binary data in network byte order. If the input is invalid, INADDR_NONE (usually -1) is returned. Use of this function is problematic because -1 is a valid address (255.255.255.255). Avoid its use in favor of inet_aton(), inet_pton(3), or getaddrinfo(3) which provide a cleaner way to indicate error return.