Перенаправление вывода оболочки VxWorks в сокет - PullRequest
1 голос
/ 05 августа 2009

Я знаю, что просто перенаправить вывод оболочки в файл .

Так что я также должен иметь возможность установить сокет и перенаправить вывод оболочки в сокет, поскольку по сути это просто еще один дескриптор файла (я думаю)?

Я видел несколько примеров программ на C, которые создают базовые функциональные возможности клиент / сервер, но (как бы они ни были малы) это похоже на чрезмерное уничтожение.

Могу ли я установить сокет с помощью нескольких команд в оболочке? Если да, какой синтаксис мне нужен?

Я понимаю, что это, вероятно, чрезвычайно просто, но я новичок в VxWorks, и, потратив последние два дня на поиски ответа в Интернете, я решил спросить здесь!

Спасибо за любую помощь, которую вы готовы предложить.

Dan

Ответы [ 2 ]

2 голосов
/ 08 августа 2009

Оболочка является простым интерпретатором c. Просто напишите код, как если бы вы писали программу на c:

-> mysock = socket(2, 1, 0)
/* double check that these are right for AF_INET and SOCK_STREAM*/
-> myaddr = malloc(100)
-> m myaddr
/* fill in the fields according to the address you want to connect to */
-> connect(mysock, myaddr, myaddrlen)
/* I don't have a system handy now, but you can figure out
   myaddrlen by writing a small C program to print out sizeof(sockaddr_in),
   or just figure it out by hand looking at the header. */

Теперь ваш сокет fd подключен, перенаправлен и получайте удовольствие. (По моему мнению, если вы собираетесь делать это регулярно, может быть проще кодировать это в программу на языке c, которую вы можете запустить из оболочки, чтобы выполнить все настройки за вас.)

0 голосов
/ 06 августа 2009

Я не знаю VxWorks, но есть программа gnu netcat для * nix, которая может сделать это, например:

your_program | порт хоста netcat

перенаправит вывод your_program на port@host.

...