2015-06-21 5 views
1

У меня возникли некоторые проблемы для решения проблемы. Серверная программа дает 4 случайных целых числа без знака каждый раз, когда я подключаюсь к нему. Моя задача - добавить 4 числа и отправить обратно сумму. Но время ограничено. Поэтому, если я хочу использовать калькулятор для выполнения задания, это невозможно. Поэтому я должен прибегать к написанию сценариев. Я хочу подключиться к серверу с помощью netcat, получить 16 байтов, передать данные моей программе на C (которая будет анализировать данные в 4 неподписанных переменных int и распечатать сумму) и снова перенаправить выход этой программы на netcatПрограммирование сокетов Netcat

netcat <server> <port> | myProg | netcat <server> <port> 

Но разъем netcat tcp открывается второй раз, это не предыдущий разъем. Таким образом, на этот раз будет представлен другой набор из 4 чисел, который победит все усилия. Мой вопрос: возможно ли любым способом (используя netcat) использовать предыдущий сокет (открытый netcat) для перекачки рассчитанной суммы обратно на сервер?

Я не хочу использовать C для программирования сокетов, поскольку это очень сложно для меня. Также я знаю

echo 3<>/dev/tcp/server/port 
cat <&3 | ./myprog | more >&3 

, вероятно, решить мою цель (поправьте меня, если я ошибаюсь). Но я хотел бы сделать это netcat. Заранее спасибо.

ответ

0

Использовать socat вместо netcat.

socat может породить саму команду, с входом и выходом и перенаправляется (не использовать перенаправление оболочки, пусть socat ручку она)

socat TCP:server,port SYSTEM:myProg 
+0

Большое спасибо за ваш ответ, сэр. Однако я хотел бы подтвердить, что это невозможно с помощью netcat. –

Смежные вопросы