1

我知道将 shell 输出重定向到文件很简单。

所以我也应该能够设置一个套接字并将shell的输出重定向到套接字,因为本质上它只是另一个文件描述符(我认为)?

我已经看到了一些示例 C 程序,它们创建了一些基本的客户端/服务器功能,但是(尽管它们很小)这似乎有点过头了。

我可以在 shell 中只用几个命令设置一个套接字吗?如果是这样,我需要什么语法?

我意识到这可能非常简单,但我是 VxWorks 的新手,在过去的两天里我一直在网上搜寻答案,我决定在这里问!

感谢您愿意提供的任何帮助。

4

2 回答 2

2

shell 是一个简单的 c 解释器。就像编写 ac 程序一样编写代码:

-> 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 已连接、重定向并玩得开心。(在我看来,如果您要定期执行此操作,将其编码到 ac 程序中可能会更简单,您可以从 shell 运行该程序来为您完成所有设置。)

于 2009-08-08T01:47:19.587 回答
0

我不知道 VxWorks,但是有一个用于 *nix 的 gnu 程序 netcat 可以做到这一点,例如:

你的程序 | netcat 主机端口

会将 your_program 的输出重定向到 port@host。

于 2009-08-06T15:09:02.867 回答