tcp: fix some TCP only options
tcp: fix error throwing
tcp: make port optional in listen