当前位置: 首页 > news >正文

四川网站建设多少钱大数据查询平台

四川网站建设多少钱,大数据查询平台,长沙长沙h5网站建设,上海网站建设 网页制作文章目录 套接字的类型流套接字数据报套接字原始套接字 套接字地址获取套接字地址 协议族和地址族 套接字的类型 Linux系统的套接字有三类:流套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAM)。 流套接字 用于面向连接…

文章目录

  • 套接字的类型
    • 流套接字
    • 数据报套接字
    • 原始套接字
  • 套接字地址
    • 获取套接字地址
  • 协议族和地址族

套接字的类型

Linux系统的套接字有三类:流套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAM)。

流套接字

用于面向连接的、可靠的数据传输服务。该服务将保证数据能够实现无差别、无重复发送,并按顺序接收。流套接字用于TCP协议。

数据报套接字

提供一种无连接的服务。该服务并不能保证数据的可靠性,数据在传输过程中可能会丢失或重复,且无法保证顺序地接收到数据。一般用于UDP协议,如果要为传输增加可靠性,可以在程序中实现,例如使用kcp协议去封装udp协议。

原始套接字

允许对较低层次的协议直接访问,比如IP、ICMP,它常用于检验新的协议实现,或者访问现有服务中配置的新设备,因为原始套接字可以自如地控制Linux下的多种协议,能够对底层的传输机制进行控制,所以可以应用原始套接字来操控网络层合传输层应用。比如:接收发送发向本机的ICMP、IGMP协议包,或者接收TCP/IP栈不能够处理的IP包,也可以用来发送一些自定义报头或者自定义协议的IP包。网络监听技术经常会用到原始套接字。

总:原始套接字合标准套接字(前两个)的区别在:原始套接字可以读写内核没有处理的IP数据报,而流套接字只能读取TCP的数据,数据报套接字只能读取UDP的数据。

套接字地址

一个套接字嗲表通信的一端,每端都有一个套接字地址,这个socket地址包含了ip地址和端口等信息。有了ip地址便可以区分主机,有了端口号,便可以区分主机上的进程。套接字地址一般分为 通用套接字地址 和 专用套接字地址。
通用socket地址: sockaddr
专用套接字地址:sockaddr_in 和 sockaddr_in6 (分别是IP4和IP6)

获取套接字地址

获取本地套机字地址:getsockname
获取远程套接字地址:getpeername

#incudle <sys/socket.h>
int getsockname(int sockfd, struct sockaddr* localaddr, socklen_t addrlen);
int getpeername(int sockfd, struct sockaddr* peeraddr, socklen_t addrlen);
参数: 套接字描述符, 通用套接字地址结构体(用来存放结果的), 
通用套接字地址结构体的长度,需要使用sizeof(struct sockaddr_in)初始化赋值

例子:获取绑定前后的套接字地址

#include <cstdio>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <string.h>
#include <errno.h>#define PORT 10051
#define SER_IP "192.168.159.129"int main(){int sfp;struct sockaddr_in serv = {0};serv.sin_port = htons(PORT);serv.sin_addr.s_addr = inet_addr(SER_IP);serv-sin_family = AF_INET;struct sockaddr_in result = {0};char on = 1;int res_len = sizeof(struct sockaddr_in);int err;sfp = socket(AF_INET, SOCK_STREAM, 0);if( -1 == sfp){printf("socket fail\n");return -1;}printf("socket ok\n");//打印bind前的socket地址printf("ip = %s, port = %d\n", inet_ntoa(result.sin_addr), ntohs(result.sin_port));//允许地址立即复用setsockopt(sfp, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));//打印绑定后的本地套接字地址if( -1 == bind(sfp, (struct sockaddr*)(&serv), sizeof(struct sockaddr)) ){prinf("bind fail:%d\n");return -1;}printf("bind ok\n");getsockname(sfp, (struct sockaddr*)&result, (socklen_t*)&res_len)); printf("ip = %s, port = %d\n", inet_ntoa(result.sin_addr), ntohs(result.sin_port));return 0;
}

协议族和地址族

理论上建立socket时,如果是指定协议的,应该使用PF_xxxx,如:PF_INET;如果是指定地址的,应该使用AF_xxxx,如:AF_INET。当然,两者的值是相同的,混用也问题不大。

在Ubuntu20.04下,/usr/include/x86_64-linux-gnu/bits/socket.h中定义了地址族和协议族。

http://www.hengruixuexiao.com/news/31601.html

相关文章:

  • 安康网站建设公司价格淘宝怎么优化关键词步骤
  • 免费下载简历自己填写重庆seo排名技术
  • 合肥专业网站制作团队seo网站排名优化公司哪家好
  • 网站开发 8g和16g朝阳区seo
  • 宜昌网站建设公司百度seo排名优化教程
  • 免费wordpress主题下载苏州seo网站优化软件
  • 南京网站定制软文代发价格
  • 校史网站开发技术广州专业seo公司
  • 房产网站关键词优化赣州seo排名
  • 欧洲b2b网站大全百度推广好做吗
  • 邢台路桥建设总公司没有网站吗如何做好网站的推广工作
  • 企业网站建设 属于什么费用百度网站提交
  • 网站 seo 如何使用 公司网站设计公司
  • 如何做网站销售公关负面处理公司
  • win8建立网站重庆seo小潘大神
  • 网站服务公司特点百度竞价推广收费
  • 摄影网站制作创意营销案例
  • 怎么样自己做网站接订单网络推广员是什么
  • 制作网站收费图片优化
  • 公众号网站开发用什么模板真正免费的网站建站平台运营
  • 微信公众号怎么做网站的成都私人网站制作
  • 商城网站设计服务chrome官方下载
  • 网站优化哪家好yoast seo教程
  • 网站资源做缓存微帮推广平台怎么加入
  • WordPress配置路由跳转seo内容优化
  • 青岛官网建站关键词seo优化排名
  • 工信和信息化部网站软文营销的特点
  • 天津公司做网站杭州网站关键词排名优化
  • 21dove谁做的的网站seo外链推广工具下载
  • 网站建设与网页设计考试题河南网站建设