Есть TCP клиент, к коду которого не имею доступ, и есть TCP сервер, мною написанный. Клиент отлично подключается к серверу, теперь серверу надо отослать(send()) клиенту некую информацию. Вопрос таков: допустим я открываю на сервере слушающий TCP сокет в одном потоке, и устанавливаю связь(accept()) в этом же потоке, а отсылать информацию буду в другом. Может такое сработать или другой поток будет иметь другой набор дескрипторов и ничего не получится? И если ответ на первый вопрос отрицательный, то почему всё же при отправке(send()) из другого потока функция send не вернёт ошибку?
Я уже такое провернул, и клиент ничего не получил, а если посылаю из того же потока, то клиент получает. Самое интересное то, что в обоих случаях я отлавливаю пакет с помощью tcpdump, и они оба содержат правильный адрес получателя. Ещё один вопрос: почему всё же не доходит, даже с правильным адресом?