Cannot assign requested address
You are attempting to bind(2) to a local address that isn't local. For example if the IP addresses of a machine are 127.0.0.1 and 220.127.116.11, and you're trying to bind to 18.104.22.168 you are going to get this error. Check to make sure the address you are trying to bind to exists on the machine you are trying to bind it from.
This error can also come up if you're doing a "pre-bound connect", where you're first bind()ing to a local port, then doing an outbound connect with a socket. If the local port is already connected to the given remote IP and port (i.e., there's already an identical socketpair), you'll receive this error (value = 99 on Linux).