У меня есть следующий код:
{
send(dstSocket, rcvBuffer, recvMsgSize, 0);
sndMsgSize = recv(dstSocket, sndBuffer, RCVBUFSIZE, 0);
send(rcvSocket, sndBuffer, sndMsgSize, 0);
recvMsgSize = recv(rcvSocket, rcvBuffer, RCVBUFSIZE, 0);
}
, который в конечном итоге должен стать частью общего TCP-прокси. Теперь он работает не совсем корректно, так как recv () ожидает ввода, поэтому данные передаются только кусками, в зависимости от того, где они находятся в данный момент.
Что я прочитал, так это то, что мне нужно что-то вроде «неблокирующих сокетов» и механизма для их мониторинга. Этот механизм, как я выяснил, в Linux - это выбор, опрос или epoll. Может ли кто-нибудь дать мне подтверждение, что я на правильном пути? Или это упражнение можно выполнить и с помощью блокирующих розеток?
С уважением