现在位置: 首页 > 网络编程
2019-07-27 06:40 工业·编程 ⁄ 共 1303字 暂无评论
sockaddr_in中的sin_family=PF_INET是什么意思?sin_family还有别的值吗?如果有都有什么?这些其他的值都是什么意思? 可以直接看定义所在的winsock.h,AF_INET是internet地址族,包括了tcp、udp什么的, IPX、pipe什么的就不用AF_INET这个值 PF_INET与AF_INET究竟有什么不同?实际上,原来的想法是每个通信域(如PF_INET)可能对应多个协议(如AF_INET),而事 实上支持多个协议的通信域一直没有实现。因此,在linux内核中,AF...
阅读全文
2019-07-25 22:56 工业·编程 ⁄ 共 1155字 暂无评论
1. 头文件 windows下winsock.h或winsock2.h linux下netinet/in.h(大部分都在这儿),unistd.h(close函数在这儿),sys/socket.h(在in.h里已经包含了,可以省了) 2. 初始化 windows下需要用WSAStartup启动Ws2_32.lib,并且要用#pragma comment(lib,"Ws2_32")来告知编译器链接该lib。 linux下不需要 3. 关闭socket windows下closesocket(...) linux下close(...) 4. 类型 windows下SOCKET linux下int(我喜欢用long...
阅读全文
2019-07-01 06:28 工业·编程 ⁄ 共 5116字 暂无评论
网络是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。 通信是人与人之间通过某种媒体进行的信息交流与传递。网络通信是通过网络将各个孤立的设备进行连接,通过信息交换实现人与人,人与计算机,计算机与计算机之间的通信。 网络通信中最重要的就是网络通信协议。当今网络协议有很多,局域网中最常用的有三个网络协议:MICROSOFT的NETBEUI、NOVELL的IPX/SPX和TCP/IP协议。应根据...
阅读全文
2019-06-29 06:13 工业·编程 ⁄ 共 5111字 暂无评论
1.ACE: ACE提供了一组丰富的可重用C++包装外观(WrapperFacade)和框架组件,可跨多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服务动态(重)配置、并发执行和同步等等。ACE简化了使用进程间通信、事件多路分离、显式动态链接和并发的面向对象的网络应用和服务的开发。 ACE架构图如图1-1所示: ACE的优点主要有: (1).增...
阅读全文
2019-06-03 10:47 工业·编程 ⁄ 共 612字 暂无评论
protoBuf是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。与Protoful类似的序列化技术还有XML、JSON、Thrift等。 优点 与同类型的数据交换格式相比(诸如json,xml),由于protobuf是基于二进制数据传输格式,因此它具有高效的解析速度和更小...
阅读全文
2019-06-01 05:12 工业·编程 ⁄ 共 3276字 暂无评论
1.选择路由 若要将数据包发至PC2,则linux系统通过查询路由表可知168.1.1.10(目的地址)的网关地址为192.168.1.1,此时linux系统选择网卡1发送数据包。 2.邻居子系统(通过arp协议建立起邻居的信息) 选择网卡1发送数据时,首先将数据包发给邻居(网关),再由邻居转发至后面,若要发送给邻居,则必须知道邻居的MAC地址,若不知道邻居的MAC地址,则需要通过arp请求包获取邻居的MAC地址。 Linux网络体系结构由以下五个部分...
阅读全文
1、概述: lwip是轻量型的TCP/IP实现,只需10几KB的RAM和40几KB的ROM就能够跑起来,适合应用于嵌入式设备的网络通信。有牛人Adam Dunkels发明,提供给用户上那种接口 RAW TCP/IP、Squential API, BSD API(也就是常说的socket编程),前者编程稍微复杂点,协议和应用程序在一个进程里面,但是效率高。中者首先要操作系统的支持,但是一旦实现了操作系统模拟层的实现,编程妥妥的。后者是为了符合人们使用socket编程的习惯而模...
阅读全文
2019-05-04 06:49 工业·编程 ⁄ 共 16360字 暂无评论
——linux版本: 3.14.38 netlink支持用户进程和内核相互交互(两边都可以主动发起),同时还支持用户进程之间相互交互(虽然这种应用通常都采用unix-sock) 但是有一点需要注意,内核不支持接收netlink组播消息 本文将从用户进程发送一个netlink消息开始,对整个netlink消息通信原理进行展开分析 用户进程一般都通过调用sendmsg来向内核或其他进程发送netlink消息(有关sendmsg系统调用的公用部分代码解析将在另一片文章中展开) &...
阅读全文
2019-05-03 06:41 工业·编程 ⁄ 共 12226字 暂无评论
——linux版本:3.14.38 目前为止,netlink协议族支持32种(MAX_LINKS)协议类型,其中已经被预定义的有22种。 在实际项目中,如果有定制化的需求时,最好不要去占用剩下的暂未定义的协议类型ID号,而是使用预定义的通用netlink协议类型NETLINK_GENERIC来进行扩展。 LINUX中跟netlink相关的核心代码位于net/netlink目录中,其中核心头文件主要有3个(这些都是所有协议类型的netlink共享的):       &#...
阅读全文
2019-05-02 06:36 工业·编程 ⁄ 共 6298字 暂无评论
内核版本:3.14.38 netlink是一种用于内核态和用户态进程之间进行数据传输的特殊的IPC机制。 特点:     1) 用户态采用socket风格的API     2) 除了预定义的协议类型之外,支持自定义协议类型     3) 异步通讯     4) 支持消息组播     4) 全双工(特别是支持内核主动发起会话) netlink涉及的数据结构:     1) netlink地址...
阅读全文