首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一切皆Socket

    并不是所有的协议族都实现了这些协议类型,例如,AF_INET协议族就没有实现SOCK_SEQPACKET协议类型。...本文的主要内容如下: 1、网络中进程之间如何通信? 2、Socket是什么?...其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。...协议族决定了socket的地址类型,在通信中必须采用对应的地址,如AF_INET决定了要用ipv4地址(32位的)与端口号(16位的)的组合、AF_UNIX决定了要用一个绝对路径名作为地址。...这个地址结构根据地址创建socket时的地址协议族的不同而不同,如ipv4对应的是: struct sockaddr_in { sa_family_t sin_family; /*

    97810

    unix网络编程——TCP套接字编程

    #include int socket(int family, int type, int protocol); 返回:若成功返回非负数,若失败返回-1    family表示协议族...,协议族取值如表1所示: family 说明 AF_INET IPv4协议 AF_INET6 IPv6协议 AF_LOCAL Unix域协议 AF_ROUTE 路由套接字 AF_KEY 密钥套接字 表...1 协议族family取值   type表示套接字类型,套接字类型type如表2所示: type 说明 SOCK_STREAM 字节流套接字 SOCK_DGRAM 数据报套接字 SOCK_SEQPACKET...有序分组套接字 SOCK_RAW 原始套接字 表2 套接字类型 protocol表示某个协议类型常值,或者设置为0,以选择family和type组合的系统默认值,但并不是所有的family和type...指定了协议族(IPv4、Ipv6或Unix)和套接字类型(字节流、数据报或原始套接字),并没有指定本地协议地址或远程协议地址。

    1.8K10

    RIP两个版本:RIP-1和RIP-2

    支持的地址族:RIP-1仅支持IPv4单播地址,不支持其他地址族如IPv6。缺陷:RIP-1存在一些问题,比如慢收敛、最大跳数限制、不支持变长子网掩码(VLSM)等,这些都限制了其在大型网络中的应用。...支持其他地址族:RIP-2不仅支持IPv4,还支持IPv6等其他地址族。扩展属性:RIP-2在路由表条目中增加了一些扩展属性,如路由标记、下一跳地址等,提供了更丰富的路由信息。...RIP-2使用多播地址224.0.0.9发送路由更新,只有订阅该多播组的邻居路由器会收到更新。这种方式减少了不必要的带宽消耗。支持的地址族RIP-1仅支持IPv4单播地址,不支持其他地址族。...RIP-2不仅支持IPv4,还支持IPv6等其他地址族。这使得RIP-2在现代异构网络中的适用性更强。子网掩码支持RIP-1不支持可变长子网掩码(VLSM),只能使用固定长度的子网掩码。...对于大型网络,通常会选择OSPF、IS-IS等更高级的路由协议,它们在可扩展性、收敛速度、安全性等方面都优于RIP系列。异构网络环境RIP-2由于支持多种地址族,在异构网络环境中的适用性更强。

    1.3K10

    谈谈SOCKET

    1.socket在哪里? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。...协议族决定了socket的地址类型,在通信中必须采用对应的地址,如AF_INET决定了要用ipv4地址(32位的)与端口号(16位的)的组合、AF_UNIX决定了要用一个绝对路径名作为地址。...当我们调用socket创建一个socket时,返回的socket描述字它存在于协议族(address family,AF_XXX)空间中,但没有一个具体的地址。...这个地址结构根据地址创建socket时的地址协议族的不同而不同,如ipv4对应的是: struct sockaddr_in { sa_family_t sin_family;...失败时返回-1,并设置errno变量。在网络程序中,当我们向套接字文件描述符写时有俩种可能。1)write的返回值大于0,表示写了部分或者是 全部的数据。2)返回的值小于0,此时出现了错误。

    1K20

    【专业技术】linux下socket编程

    其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。...2、套接字描述符 其实就是一个整数,我们最熟悉的句柄是0、1、2三个,0是标准输入,1是标准输出,2是标准错误输出。...0、1、2是整数表示的,对应的FILE *结构的表示就是stdin、stdout、stderr。...协议族决定了socket的地址类型,在通信中必须采用对应的地址,如AF_INET决定了要用ipv4地址(32位的)与端口号(16位的)的组合、AF_UNIX决定了要用一个绝对路径名作为地址。...2、bind()函数 正如上面所说bind()函数把一个地址族中的特定地址赋给socket。例如对应AF_INET、AF_INET6就是把一个ipv4或ipv6地址和端口号组合赋给socket。

    2.2K60

    Socket通信原理

    TCP/IP协议族包括运输层、网络层、链路层。现在你知道TCP/IP与UDP的关系了吧。 Socket在哪里呢? 在图1中,我们没有看到Socket的影子,那么它到底在哪里呢?...其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。...协议族决定了socket的地址类型,在通信中必须采用对应的地址,如AF_INET决定了要用ipv4地址(32位的)与端口号(16位的)的组合、AF_UNIX决定了要用一个绝对路径名作为地址。...当我们调用socket创建一个socket时,返回的socket描述字它存在于协议族(address family,AF_XXX)空间中,但没有一个具体的地址。...这个地址结构根据地址创建socket时的地址协议族的不同而不同,如ipv4对应的是 struct sockaddr_in { sa_family_t sin_family; in_port_t sin_port

    1.6K10

    网络编程-一个简单的echo程序(1)

    sin_port 协议端口 sin_addr 协议地址 协议族通常有以下几种类型: AF_INET IPV4协议 AF_INET6 IPV6协议 AF_LOCAL Unix域协议...通过socket函数指定了本次网络通信的协议族,套接字类型,调用成功后,会返回一个非负的套接字描述符,否则返回-1,具体失败原因,被存放于全局变量errno。...-- 1 hyb hyb 64 7月 8 19:59 2 -> /dev/pts/6 lrwx------ 1 hyb hyb 64 7月 8 19:59 3 -> socket:[62182]...bind--指定套接字地址信息 调用socket函数之后已经确定了协议族和传输协议,但是还没有确定本地协议,即套接字地址信息。...connect函数的参数与bind函数一样,这里就不多做解释了,只不过addr指明的是远端协议地址。如果本次连接是TCP协议,则connect函数调用将会发起TCP的三次握手。

    1.5K40

    主流NoSQL和应用场景详解

    不适用场景 1. 取代通过键查询,而是通过值来查询。Key-Value数据库中根本没有通过值查询的途径。 2. 需要储存数据之间的关系。在Key-Value数据库中不能通过两个或以上的键来关联数据。...这种情况下,姓名和年龄就会被放入一个列族中,而薪资则在另一个列族中。...(HBase) 适用的场景 1. 日志。因为我们可以将数据储存在不同的列中,每个应用程序可以将信息写入自己的列族中。 2. 博客平台。我们储存每个信息到不同的列族中。...不适用场景 1. 如果我们需要ACID事务。Vassandra就不支持事务。 2. 原型设计。如果我们分析Cassandra的数据结构,我们就会发现结构是基于我们期望的数据查询方式而定。...Redis 所用语言:C/C++ 特点:运行异常快 使用许可:BSD 协议:类 Telnet 有硬盘存储支持的内存数据库, 但自2.0版本以后可以将数据交换到硬盘(注意, 2.4以后版本不支持该特性!)

    1.8K20

    C语言第1课——socket编程+c++,c语言语录

    TCP/IP协议 传输控制/网际协议,又叫网络通信协议。实际上,它包含上百个功能的协议,如ICMP(互联网控制信息协议)、FTP(文件传输协议)、UDP(用户数据包协议)、ARP(地址解析协议)等。...套接字由三个参数构成:IP地址,端口号,传输层协议。这三个参数用以区分不同应用程序进程间的网络通信与连接。...struct sockaddr { //地址族,2字节 unsigned short sa_family; //存放地址和端口,14字节 char sa_data[14]; } struct...sockaddr_in { //地址族 short int sin_family; //端口号(使用网络字节序) unsigned short int sin_port; //地址 struct...两种数据结构中,地址族都占2个字节, 常见的地址族有:AF_INET,AF_INET6AF_LOCAL。

    2.9K10

    Python网络编程中的套接字名和DNS解析

    首先,第1个参数是地址族的选择,某个特定的机器可能连接到多个不同类型的网络。对地址族的选择指定了想要进行通信的网络类型。这里面选择的是AF_INET作为地址族,即在IP网络层编写程序。...第2个参数就是套接字类型,然后我们解释一下套接字类型,尽管TCP和UDP是AFINET协议族特有的,但是套接字接口的设计者决定基于数据报的套接字这一宏观的概念创建一些更通用的名字,这就是SOCKDGRAM...这两个符号就可以覆盖不同地址族的很多协议了。 socket()调用的第3个参数是协议,但是一旦确定了协议族和套接字类型,可能使用的协议范围就被缩到了一个主要的选项。如果设置成0。...至于第4个和第5个参数就是IP地址和端口号。当然现在如果要是使用IPV6地址族的话,那你可以看看AF_INET6。...(parser.parse_args().hostname) 下面这三点要引起注意: 1、代码中没有提到使用IP协议,也没有提到TCP作为传输方式。

    5.3K70

    面向连接的c语言socket 程序流程(TCP)

    操作系统根据第二个参数返回Socket的版本 二.Socket 函数原型 int Socket(int domain,int type,int protocol); domain指明所使用的协议族,通常为...PF_INET/AF_INET,表示互联网协议族(TCP/IP协议族); type参数指定socket的类型:SOCK_STREAM(TCP)或SOCK_DGRAM(UDP),Socket接口还定义了原始...) 五.客户端请求连接——connect()函数 当服务器端建立好套接字并与一个本地地址绑定后,就进入监听状态, 等待客户发出连接请求。...addr:(可选)指针,指向一缓冲区,其中接收为通讯层所知的连接实体的地址。Addr参数的实际格式由套接口创建时所产生的地址族确定。...十.WSACleanup() #include 2.h> 引用库 #pragma comment(lib, "ws2_32.lib") 静态加入一个lib文件也就是库文件ws2_32.lib

    2K20

    iOS开发轻松学习Socket

    UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是属于TCP/IP协议族中的一种。 TCP/IP协议族包括运输层、网络层、链路层。...Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。...下面一图胜前言: Socket 传输的特点: 1: 传输数据为字节级,传输数据可自定义,数据量小(对于手机应用讲:费用低) 2: 传输数据时间短,性能高 3: 适合于客户端和服务器端之间信息实时交互...协议族决定了socket的地址类型,在通信中必须采用对应的地址,如AF_INET决定了要用ipv4地址(32位的)与端口号(16位的)的组合、AF_UNIX决定了要用一个绝对路径名作为地址。...返回值:如果调用成功就返回新创建的套接字的描述符,如果失败就返回INVALID_SOCKET(Linux下失败返回-1) 2: 建立连接 int result = connect(socketID, (

    87710
    领券