The netcat -s parameter is used to set the source address. This parameter is used if you have multiple interfaces, and multiple exit gateways that can be used. netcat manual
It seem to me that you are trying to set the source ip to an ip that is not routed back to you on your gateway.
The traffic flow would look something similar to this for the three-way handshake:
(192.168.0.254 is your default gateway used to reach internet).
7.7.7.7 -> 192.168.0.1 (SYN)
192.168.0.1 -> 192.168.0.254 (SYN+ACK) # At this point, the packet will be routed through the gateway, destination is still 7.7.7.7
192.168.0.254(official internet ip) -> 7.7.7.7 (SYN+ACK)
7.7.7.7 -> 192.168.0.254(official internet ip) (RST) # Packet is disregarded by 7.7.7.7 is not familiar with this connection.
As you can see, you will be able to spoof the initial packet to the server, but you are unable to complete the three-way-handshake which is required to send any commands/data. The reason for this is because the response traffic will not be sent back to you, but to the real 7.7.7.7 ip.
A method to perform a successful spoofing attack is by man-in-the-middle, where you convince 192.168.0.1 that you are the gateway. When 192.168.0.1 send the SYN+ACK response towards 7.7.7.7, you will intercept the traffic and can act as 7.7.7.7.
Paper about ARP and attacks