7510|7

849

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

Realtime库实际学习过程加所有模块心得(连载) [复制链接]

从今天开始,我觉得学一个东西,要有系统规划,学了一个东西要总结 ,然后将所以综合一下,做成一个项目,这样才叫学习致用,下面我会将学习TCP/IP(net)的过程心得上传,
里面全是本人一点一滴的学习过程,因为有前人的总结和引导,我今天学习起来更容易了,不过我将会将这块项目做得很完美的:请大家期待。。。。。。
以下内容均以RL实时库指导为基础。。。。。。
一.TCPNET的应用
1.TCPnet的概念
RLTCPnet非常适合小型客户使用,如嵌入式系统。它是TCP/IP协议栈的实现,该协议的主要目的减小内存的使用和代码的大小,也相当于一种代码和内存的优化协议了。
RL-TCPnet是适用于ARM7/9 CM3的体系结构的软件的一种底层实现部分。
2.TCPnet的组成部分
RL-TCPnet完全是由C代码构成的,编译环境必须是REALVIEW编译器,它是RL-ARM的一部分。RL-ARM是一个独立的产品,不包含在REALVIEW MDK-MICROCONTROLLER DEVELOPMENT KIT中。
3.TCP SOCKET
TCP协议运行平台是IP协议。TCP协议是一种面向连接的可靠的字节流服务
面向连接:两个应用程序使用TCP协议时,须在数据传输前建立TCP连接;
字节流服务:TCP是一个双工通信协议,每一个TCP连接支持一对字节流,收发双方各一个。
对于错误的处理机制:TCP对于每一个由错误没有到达目标文件的数据进行重传。如果数据坏了,它进行重发。
4.TCP 连接
RL-TCPnet的操作模式是C/S模式,TCP协议也是基于这个模式的。C/S都是通过打开操作来准备连接。
打开操作分为两种,
主动打开:客户机使用TCP,处理且通过发送TCP信息来启动并初始化连接(SYN信息);
被动打开:一个服务器进程使用TCP,使用一个更加宽松的方法。这个服务器除了指示服务进程外不做任何事,其实就是一个等等来自一特殊客户的主动打开。
5.TCP主动打开与被动打开
主动打开:
当连接一个远程server时,嵌入式应用程序使用TCP Active Open(如发邮件)。这种情况下,TCPNET系统是TCP连接的发起者。
打开活动的TCP连接步骤:
(1)在Net Config.c配置文件中打开TCP socket;
(2) 使用tcp_get_socket()得到一个空闲的tcp socket;
(3)调用 tcp_connect()函数初始化TCP连接。
被动打开:
运行服务器应用程序时TCP被以被动方式打开,如WEB浏览器。TCP SOCKET以被动方式打开,并等待输入连接 。
打开TCP连接步骤:
(1)同上(1);
(2)同上(2);
(3)利用tcp_listen()函数,允许TCP socket监听模式。
6.发送TCP数据
TCP协议不关心数据格式,只是简单的接收数据,将其压缩成TCP包,并发送给远程对等体。之后TCP Socket把最后的包保存在内存里,并等待远程对等体的响应回复。如果等待超时,则会重新发送此包,直到sorcket连接fail,或者包得到响应。内存中保存的是最后的发送包,这是为解决内存不足减小协议的实现占用率而设定的。当最后的发送包得到响应后,释放包所占的空间。
7.发送数据示例
下面我将给出一个仿写的例子说明的是使用TCP Socket发送大量数据的概念。该例子发送 64 Kbytes的数据 到远程 IP地址172.20.134.76(本机IP地址,哈哈,这个地址才能连网我就不想改动了),监听着端口 1000。当数据发送或连接关闭时,TCP Socket分配不变,也不释放。
。。。。由于关灯了,我马上回寝室了。例子已实现,明天将整理给出。
上面只是简单地说了一下学习的第一章的内容。。。。后续部分就会在连续的几天内发出。。

[ 本帖最后由 shilaike 于 2011-4-14 09:49 编辑 ]

最新回复

楼主有没有做这个做一个服务器呢?  详情 回复 发表于 2015-2-6 15:05

赞赏

2

查看全部赞赏

 
点赞 关注
个人签名只有想不到,没有做不到。

回复
举报

15

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
感谢分享!
期待更加详细点,最好有教程
 
 

回复

849

帖子

0

TA的资源

纯净的硅(高级)

板凳
 

回复 沙发 ddt0517 的帖子

上面只是一个引导小节,具体的内容我将在下面的几天时间内不断更新 。。。
敬请期待。。。。。。
 
个人签名只有想不到,没有做不到。
 
 

回复

2万

帖子

71

TA的资源

管理员

4
 
谢谢楼主分享 楼主加油
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

849

帖子

0

TA的资源

纯净的硅(高级)

5
 
原帖由 shilaike 于 2011-4-13 22:25 发表
从今天开始,我觉得学一个东西,要有系统规划,学了一个东西要总结 ,然后将所以综合一下,做成一个项目,这样才叫学习致用,下面我会将学习TCP/IP(net)的过程心得上传,
里面全是本人一点一滴的学习过程,因为有前 ...

由于程序代码的多,所以下面介绍一下主要的几个函数:
init_TcpNet();这个函数的主要目的就是对TCPNET的系统资源,协议和应用程序,在启动程序时必须要调用这个函数
main_TcpNet();这个函数是TCPNET的主函数,主要负责下面三件事:
//1.协议超时设定
//2.ARP地址缓存
//3.轮洵以太网控制器来接收数据
tcp_get_socket();这个函数的参数很多,原型是:extern U8   tcp_get_socket (U8 type, U8 tos, U16 tout,U16 (*listener)(U8 socket, U8 event, U8 *buf, U16 len));
对于这个函数的介绍请点击下面的链接:https://home.eeworld.com.cn/my/space.php?uid=292785&do=thread&id=354
下面这个链接是关于tcp_connet(),tcp_listen(),tcp_release_socket()几个函数的详细说明:https://home.eeworld.com.cn/my/space.php?uid=292785&do=thread&id=355
 
个人签名只有想不到,没有做不到。
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 

下文呢?

怎么没有下文了?
 
 
 

回复

42

帖子

0

TA的资源

一粒金砂(中级)

7
 

后面的呢

觉得很好,期待楼主继续更新
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(初级)

8
 
楼主有没有做这个做一个服务器呢?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表