假设你的linux电脑是一个嵌入式主机.这个主机下面设计一个程序,做一个串口<->网络映射
就是说网络端口a对应串口b,a+1对应串口b+1,...a+n对应串口b+n.当别人用tcp连接你的网络端口k的时候,就向在读写网络端口k对应的串口w。注意,可以允许很多个人同时连接网络端口k,你可以给他们设置权限,有的ip可以读,有的可以读写,串口w得到的数据你必须转发到连接它的所有网络端口k的tcp客户那里。端口k的tcp客户发来的数据直接,或者按照你的要
求做某种转化,发送给串口w。
现在有人做这个,这个东西可以让使用者通过网络,控制某些串口设备。
你做的这个是一个小型的服务器,当然需要配置,比如配置那些ip可读,可写,或者屏蔽那些ip等等,注意设计成可以远程通过网络配置的。
最终能设计成什么样子就看你的设计能力了,这是你的产品,你要考虑别人在使用你的产品时是 否方便,是否高效。
这个东西很容易测试,因为通过网络,和串口,只要用多几个电脑连接你的串口或者网络就可以了,无论他们是什么系统。
个人认为你需要了解的知识:
--tcp/ip通讯:不解释
linux的串口读写设置:不解释
--文件:有配置吗,当然要保存成文件,你总不能重起一次机器,让用户重新配置一次吧
--守护进程:你自己去了解,嵌入式服务器程序都会有这个
--linux多线程:要满足并发访问,当然多线程
epoll:主要是为了大规模并发访问用,你如果设计的东西只为了让200个人tcp连接,开200个线程就可以了,但20000人...就得用这个了.
相关知识网上自己去找,都有中文讲解.
不用开发板,现在嵌入式开发很多时间都在设计程序.
就这些了。
另一个项目
C开发五子棋,可实现网络内两台或更多机器进行互联! 自动搜索网内机器。自动连接。及时互动,可进行通讯。
我之前的计划有缺陷,我不应该以一些章节或者知识点为目标,我应该用实际的开发来作为目标。比如实实在在的一个项目,哪怕是一个小游戏,也比死死的去看书要好很多很多
我可以将项目划分为很多的模块,确定每个模块需要掌握的东西,带着疑问去学习东西,要比漫无目的的学习要好很多。