tipc可以光猫可以直接接网线吗吗

[网络]_______旧爱 - 歌单 - 网易云音乐
[网络]_______旧爱
播放:141次
网易云音乐多端下载
同步歌单,随时畅听320k好音乐
网易公司版权所有(C)杭州乐读科技有限公司运营:4030人阅读
数据传输协议(8)
TIPC协议使用的套接字地址为struct sockaddr_tipc类型:
和其他套接字类似,family指明了地址使用的协议簇。
addrtype指明了地址类型,addrtype取值如下:
#define TIPC_ADDR_NAMESEQ
#define TIPC_ADDR_MCAST
#define TIPC_ADDR_NAME
#define TIPC_ADDR_ID
如果取值类型为TIPC_ADDR_NAMESEQ,那么在union addr中需要对nameseq赋值。struct tipc_name_seq定义如下:struct tipc_name_seq的lower、upper看起来像是表示一个范围,确实如此,它们表示了一个服务所在的范围。TIPC地址以不同的服务划分,不同节点之间的服务可以相同,为了区分这些服务,服务还对应instance(下文会有说明),而struct tipc_name_seq 的lower、upper正是指明了服务的范围,所以你可以认为struct
tipc_name_seqname为发消息时寻找符合要求的服务而存在。
如果说TIPC_ADDR_NAMESEQ为发送消息时寻找服务而存在,那么TIPC_ADDR_NAME就是为绑定服务而存在。struct tipc_name的结构如下:
struct tipc_name {
和struct tipc_name_seq中的type一样,struct tipc_name中的type指明了服务类型。
而instance则是该服务区别于其他服务的标识,和上文struct tipc_name_seq的lower、upper对应。
而TIPC_ADDR_MCAST和TIPC_ADDR_ID有什么作用呢?
从字面意思上看TIPC_ADDR_MCAST表明该地址为多播地址,上文中struct tipc_name_seq的lower、upper最多只能让对应同一服务的若干个节点接收消息,而多播应该是和服务无关吧(TIPC_ADDR_MCAST没有用过,也没有了解)。
TIPC_ADDR_ID更是没有了解。
struct tipc_portid的定义如下:
struct tipc_portid {
node指明了节点地址,但ref的含义是什么呢,它和struct tipc_name_seq以及struct tipc_name中的type有联系吗,我不知道。
通过tipc-config查看节点信息时可以看到对应于struct tipc_portid的ref,node信息。例如在没有tipc用户程序启动时,运行 tipc-config -nt可以得到如下信息:
Port Identity
Publication
-------------------------------- -------------------------- ------------------
由上可以看到,type=0的节点的地址为&1.1.1&,ref为,type=1的节点的地址为&1.1.1&,ref为。
注意:值为0-63的type为TIPC保留type,不能被用户程序使用,type=0为配置服务类型(configuration service name type),type=1为拓扑服务类型(topology service name type)。
在struct sockaddr_tipc中我们还遗漏了一个元素,即domain,与struct tipc_name name共同组成struct name的domain。domain的取值范围如下:
#define TIPC_ZONE_SCOPE
#define TIPC_CLUSTER_SCOPE
#define TIPC_NODE_SCOPE
在TIPC协议中,一台主机为一个节点,一个节点的地址是固定的,初次使用insmod安装tipc.ko后,可以通过tipc-config配置节点地址,但配置过后就不能再更改了,如果需要更改需要通过rmmod移除tipc.ko,然后再修改。TIPC-1010带标准PC104扩展总线和双路CAN接口的
TIPC-1010是广州致远电子有限公司开发的基于XScale处理器的嵌入式触摸平板电脑,具有丰富的资源、低功耗、高可靠性、接口具有ESD保护等特点,预装正版Microsoft Windows CE 5.0或MontaVista Realtime Linux嵌入式操作系统并提供所有板载外设驱动库,可通过本地(CF卡或U盘)或Internet远程升级操作系统,使其成为一个开放式人机界面解决方案,便于系统集成。
TIPC-1010带标准PC104扩展总线和双路CAN接口的下载
下载资料需要,并消耗一定积分。
下载此资料的人还喜欢:
技术交流、我要发言! 发表评论可获取积分! 请遵守相关规定。
本周热点资料
电子资料热门词
上传者其它资料
单片机下载排行Socket网络编程详解(TCP) - 简书
Socket网络编程详解(TCP)
socket到底是个什么东西,socket是个TCP协议吗?我们平时很多方面都会用到socket,但确定真的了解socket吗?一.说起Socket我们在说什么?Wikipedia:A network socket is an endpoint of a connection in a computer network. In Internet Protocol (IP) networks, these are often called Internet sockets. It is a handle (abstract reference) that a program can pass to the networking application programming interface (API) to use the connection for receiving and sending data. Sockets are often represented internally as integers.个人理解:socket其实就是一根通信电缆两端的电话终端,电话接通后就相当两个socket建立了连接,两个电话之间可以相互通话,两个socket之间就可以实时收发数据,socket仅仅是一个通信工具,通信工具,通信工具重要的事说三遍(OSI模型中的第四层传输层的API接口,这一层通常使用两种协议TCP或UDP来传输)并不是一种协议。TCP、UDP、HTTP才是我们通常理解的协议。也就是说,Socket这个工具一般使用TCP和UDP两种协议来通信,否则光杆socket并没有毛用。其实我们所认识到的互联网中的各种通信:web请求、即时通讯、文件传输和共享等等底层都是通过Socket工具来实现的,所以说互联网一切皆socket。搞懂了socket你就相当于打通了任督二脉。二.Socket的8个必备函数socket并不可怕,我们只需掌握下面几个C语言socket函数个人觉得就够用了。1.
int socket(int domain, int type, int protocol);socket函数对应于普通文件的打开操作。普通文件的打开操作返回一个文件描述字,而socket()用于创建一个socket描述符(socket descriptor),它唯一标识一个socket。这个socket描述字跟文件描述字一样,后续的操作都有用到它,把它作为参数,通过它来进行一些读写操作。正如可以给fopen的传入不同参数值,以打开不同的文件。创建socket的时候,也可以指定不同的参数创建不同的socket描述符。socket函数的三个参数和return分别为:domain:即协议域,又称为协议族(family)。通常我们只需关心这两个协议族就够了AF_INET、AF_INET6。AF_INET表示创建IPv4的socket,那么AF_INET6就表示创建IPv6的socket。type:指定socket类型。常用的socket类型有,通常我们只需关心SOCK_STREAM、SOCK_DGRAM这两个类型也就够了,SOCK_STREAM表示TCP类型的socket,SOCK_DGRAM表示UDP类型的socket。protocol:故名思意,就是指定协议。常用的协议有,IPPROTO_TCP、IPPTOTO_UDP、IPPROTO_SCTP、IPPROTO_TIPC等,它们分别对应TCP传输协议、UDP传输协议、STCP传输协议、TIPC传输协议。通常使用中只需记住这个参数设为0就够了。当protocol为0时,会自动选择type类型对应的默认协议。return:套接口描述字。如果出现错误,它返回-1,并设置errno为相应的值当我们调用socket创建一个socket时,返回的socket描述字它存在于协议族(address family,AF_XXX)空间中,但没有一个具体的地址。如果想要给它赋值一个地址,就必须调用bind()函数,否则就当调用connect()、listen()时系统会自动随机分配一个端口。具体下文详细说明。2.
int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);正如上面所说bind()函数把一个地址族中的特定地址(IP+Port)赋给socket。例如对应AF_INET、AF_INET6就是把一个ipv4或ipv6地址和端口号组合赋给socket。作为服务端我们必须给它指定一个端口号,要不然客户端就不知道该连哪个端口了。所以服务器一般初始化问socket必须调用bind()函数绑定地址然后才能listen()。而客户端一般初始化完socket并且知道服务器IP地址和端口号就直接可以调用connect()函数进行连接了,不需要绑定自己的地址,因为系统随机给客户端分配的地址(IP+Port)已经默默发送到服务器了。好了说了这么多,该说说三个参数及return的含义了:sockfd:即socket描述字,它是通过socket()函数创建了,唯一标识一个socket。bind()函数就是将给这个描述字绑定一个名字。addr:一个const struct sockaddr *指针,指向要绑定给sockfd的协议地址。这个地址结构根据地址创建socket时的地址协议族的不同而不同,如ipv4对应的是:
struct sockaddr_in {
sa_family_t
sin_ /* address family: AF_INET */
/* port in network byte order */
struct in_addr sin_
/* internet address */
addrlen:对应的是地址的长度。return:成功返回0,失败返回-13.
int listen(int sockfd, int backlog);作为一个服务器,在调用socket()、bind()之后就会调用listen()来监听这个socket,如果客户端这时调用connect()发出连接请求,服务器端就会接收到这个请求。socket()函数创建的socket默认是一个主动类型的,listen函数将socket变为被动类型的,等待客户的连接请求。sockfd:即为要监听的socket描述字backlog:相应socket可以排队的最大连接个数。return:成功返回0,失败返回-14.
int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);作为客户端初始化完socket,不需要bind()就直接可以connect()与服务端建立连接了。因为系统会自动生成一个随机的地址(具体应该为本机IP+随机端口号)。sockfd:还没绑定客户端具体地址的socket描述字addr:即将要连接到服务端的地址(IP+port)addrlen:地址长度return:如果是阻塞连接,成功立即返回0,如果失败,在iOS系统上超时大约一分钟后返回-15.
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);TCP服务器端依次调用socket()、bind()、listen()之后,就会监听指定的socket地址了。TCP客户端依次调用socket()、connect()之后就向TCP服务器发送了一个连接请求。TCP服务器监听到这个请求之后,就会调用accept()函数取接收请求,并把会这样连接就建立好了。之后就可以开始网络I/O操作了,即类同于普通文件的读写I/O操作。sockfd:已经绑定具体服务端地址的socket描述字。sockaddr:一般为NULL,这个参数可以理解为interface指定连接必须从哪里来的,比如是localhost、wifi还是以太网卡。NULL为任意方式。addrlen:sockaddr地址长度return:成功返回服务器端socket描述字否则错误。6.
ssize_t write(int fd, const void *buf, size_t count);服务端与客户端建立了通信接下来就可以实现网络通信了,可以调用网络I/O进行读写操作了,即实现了网络中不同进程之间的通信!fd:要写入的的socket文件描述符buf:将要被写入的缓冲区数据count:被写入的数据长度return:返回值大于0,表示写了部分数据或者是全部的数据,这样用一个while循环不断的写入数据,但是循环过程中的buf参数和count参数是我们自己来更新的,也就是说,网络编程中写函数是不负责将全部数据写完之后再返回的,说不定中途就返回了!返回值小于0表示出错。代码见第三部分7. ssize_t read(int fd, void *buf, size_t count);如果系统事件源有了一个读取信号事件发生,那么我们可以调用read方法读取网络I/O中的数据。fd:建立连接的socket文件描述符buf:读取数据后放入的缓冲区count:缓冲区大小return:当读取成功时,read返回实际读取到的字节数,这样我们可以用一个while循环不断的读取数据,但是循环过程中的buf参数和count参数是我们自己来更新的,也就是说,网络编程中写函数是不负责将全部数据读取完之后再返回的。如果返回值是0,表示已经读取到文件的结束了,小于0表示是读取错误。代码见第三部分8.
int close(int fd);在服务器与客户端建立连接之后,会进行一些读写操作,完成了读写操作就要关闭相应的socket描述字,好比操作完打开的文件要调用fclose关闭打开的文件。三.循环读取和写入代码循环写入代码
循环读取代码
网络中进程之间如何通信 进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD有:管道(pipe)、命名管道(named pipe)软中断信号(si...
什么是TCP/IP、UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。
UDP(User Data Protocol,...
Linux下的Socket编程(主要包括TCP部分) 转载麻烦注明原文地址本文是Linux下基本的Socket编程进行介绍,主要包括以下知识点Linux下的一些小知识(编译常识,文件相关操作基础,进程与线程)TCP网络编程基础(TCP Socket)基于UDP协议的接受和发...
1.1 网络常识 1)网络的7层网络协议 ISO按照逻辑划分出来7层网络协议 应用层:和应用程序打交道的,进行数据的交互 表示层:将应用程序中的数据按照规则封装起来。 会话层:聊天,对话的意思,控制会话的开始和结束等 传输层:用于数据交换的通道 网络层:通过具体的网络传送数...
socket通信原理 socket又被叫做套接字,它就像连接到两端的插座孔一样,通过建立管道,将两个不同的进程之间的端口进行连接,保持双方通信,它实际上是对TCP/IP协议的上层封装.socket通信,实质上也就是基于TCP协议可靠连接进行通信。在理解socket通信之前,...
最近,看了好几篇类似的文章,当了父母以后,更怕死了。还真是说到心坎里去了,尤其像我们这样,晚婚晚育的牺牲品,年纪大了,孩子还小,我们不健康,不长寿,孩子怎么办? 偶然间看到《鲁豫有约·大咖一日行》采访梁咏琪。昔日的短发玉女,近几年都鲜在公众间露面,好像已经悄悄淡出了演艺圈。...
文/白茶心 题记:太阳为你升起,月亮为你阴晴圆缺,世间美好的一切都是为你准备的,你不拥抱它们,就是最大的辜负。 要用富人思维去考虑问题 茜茜听说姐姐搬家了。她打了个电话给姐姐问候一下。姐姐很开心地说新家有4个卧室,也有专门给孩子的书房,客厅也非常的宽敞,也没有餐饮店的“香气...
高校丰富多彩的选修课让学生有些小兴奋,其中不乏另类、新潮又特别的选修课。“大学生性心理健康教育”是西京学院比较火爆的一门选修课,齐新艳是这门课的授课老师之一。她说,给大学生上这门课很有必要,大学生如何自我保护,包括如何预防艾滋病和性病等。齐老师说,现场还要考查学生是否会用安...
整个第三部分写于1788年美国费城的市场街,描述了他的政治观,宗教信仰、编报心得、苦学多种外语、回到波士顿、读书俱乐部壮大、出入政坛、热心公益事业、事业取得成功、发明新式火炉、开办学校、关注市政建设、担任西北边防军务、自然科学成果、出使英国、被扣在纽约等经历,其中以致兰...
很想摆脱的某种现状 就是看来很难。终有一天谁也都会忍受不了 无法坚持的坚持 诶

我要回帖

更多关于 tipc 手机接口 的文章

 

随机推荐