您的位置:程序门 -> linux/unix社区 -> 程序开发区



嵌入式linux网络编程的问题,大虾来接分


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


嵌入式linux网络编程的问题,大虾来接分[已结贴,结贴人:liuguanglg]
发表于:2007-05-23 14:10:53 楼主
我们的系统是这样搭建的:

外网---》arm9平台--》交换机--》若干台工作站。


1,arm9平台上是双网口,能同时工作,跑linux。
2,工作站是用来采集数据的。

需要做的工作是   :arm9平台接受工作站发来的数据,存储转发到外网。

大家能不能给个思路。谢谢了。
现在还不知道系统的可行性,需要写个测试程序,测试工作站上发来的数据能经过arm9转发到外网,请问有没有类似的程序,谢谢大家了!

小弟接触网络编程时间不久,很多问题还不明白,
谢谢各位大虾了。
发表于:2007-05-23 14:15:281楼 得分:0
我的qq是83879542
希望能和学习网络编程的朋友多多交流
发表于:2007-05-23 18:12:222楼 得分:0
大家给点意见吧
发表于:2007-05-23 19:34:363楼 得分:0
感觉问题说的不清楚啊
发表于:2007-05-23 20:59:154楼 得分:0
dai_weitao:

硬件已经搭起来了,现在就是需要编程序了,其实arm9实现的就是一个收发存储的功能。
只是对软件流程不知道从何下手
发表于:2007-05-24 12:37:375楼 得分:100
你就是想实现arm9从内网接收文件再转发到外网?
socket就搞定了啊.
两个进程
一个进程a,listen内网连接端口,  
另一个进程b监听前一个进程的消息,   用pipe实现ipc.
1`   内网无文件发过来,   一直listen,   保持状态.
2`   内网有文件过来,   a接收文件-> 完毕-> 发消息给b,   继续listen.   b收到消息将文件转发给外网,   继续监听.
3`   重复以上步骤.
发表于:2007-05-25 09:03:536楼 得分:0
dai_weitao:
谢谢您的回复!
实现的功能如您所说。

还有一个问题就是,1.系统需要同步的收发,a每read到一定的数据再立即通过pipe发给b,这样就应该考虑进程同步的问题了     2.或者a把收到的数据放在一个缓冲区,然后b进程去缓冲区读数据发送到外网
不知道哪种方法要好些。
另外有没有类似的测试的小程序。
非常感谢您!

发表于:2007-05-25 09:40:557楼 得分:0
concern
发表于:2007-05-25 09:47:108楼 得分:0
个人觉得转发没有这么麻烦的,转发从来就是路由的事!
配置一张路由表就ok了..一般如果支持tcp/ip协议栈的话,ip_route()等函数处理转发.
如我们实验室的机器:
[root@localhost   roading]#   /sbin/route
kernel   ip   routing   table
destination           gateway                   genmask                   flags   metric   ref         use   iface
192.168.3.0           *                               255.255.255.0       u           0             0                 0   eth0
192.168.35.0         *                               255.255.255.0       u           0             0                 0   eth0
192.168.88.0         *                               255.255.255.0       u           0             0                 0   eth0
169.254.0.0           *                               255.255.0.0           u           0             0                 0   eth0
default                   192.168.35.1         0.0.0.0                   ug         0             0                 0   eth0

如果你工作站是内网的话,再用iptables配置一个nat就可以正常地和外网通讯了...
外网上测试数据可以用一般的网络截包工具.
发表于:2007-05-25 13:23:329楼 得分:0
关注
发表于:2007-05-25 14:21:3810楼 得分:0
dai_weitao:
谢谢您的回复!
实现的功能如您所说。

还有一个问题就是,1.系统需要同步的收发,a每read到一定的数据再立即通过pipe发给b,这样就应该考虑进程同步的问题了     2.或者a把收到的数据放在一个缓冲区,然后b进程去缓冲区读数据发送到外网
不知道哪种方法要好些。
另外有没有类似的测试的小程序。
非常感谢您!
===================================================================
===================================================================
我觉得同步问题不用考虑吧,   传送文件用线程做就行了,   pipe进程间通信只是负责消息.
发表于:2007-05-25 15:21:3111楼 得分:0
多谢了dai_weitao!
初学习网络编程,有什么好的建议?哪些资料会比较好
发表于:2007-05-26 00:06:4912楼 得分:0
资料就看看linux下的socket相关函数就够了吧。
如果看书的话:
advanced   programming   in   unix   environment(unix环境高级编程),这门书是linux入门书。
嵌入式方面目前好象还没什么好书吧,其实学嵌入式主要是硬件(模拟电路,数字电路等),软件和linux系统一样。
发表于:2007-05-28 11:17:5913楼 得分:0
apue   已经看过了,我现在主要学习嵌入式linux方面,本科就是学习的数电模点什么的,现在主要学习软件了。


快速检索

最新资讯
热门点击