技术培训学校机构做360手机网站优化

news/2025/10/3 19:45:41/文章来源:
技术培训学校机构,做360手机网站优化,南昌建站,WordPress 黛米付1.1. Socket简介 套接字#xff08;socket#xff09;是一种通信机制#xff0c;凭借这种机制#xff0c; 客户端-服务器 模型的通信方式既可以在本地设备上进行#xff0c;也可以跨网络进行。 Socket英文原意是“孔”或者“插座”的意思#xff0c;在网络编程… 1.1. Socket简介 套接字socket是一种通信机制凭借这种机制 客户端-服务器 模型的通信方式既可以在本地设备上进行也可以跨网络进行。 Socket英文原意是“孔”或者“插座”的意思在网络编程中通常将其称之为“套接字”当前网络中的主流程序设计都是使用Socket进行编程的因为它简单易用它还是一个标准BSD Socket能在不同平台很方便移植比如你的一个应用程序是基于Socket编程的那么它可以移植到任何实现BSD Socket标准的平台比如LwIP它兼容BSD Socket又比如Windows它也实现了一套基于Socket的套接字接口更甚至在国产操作系统中如RT-Thread它也实现了BSD Socket标准的Socket接口。 在Socket中它使用一个套接字来记录网络的一个连接套接字是一个整数就像我们操作文件一样利用一个文件描述符可以对它打开、读、写、关闭等操作类似的在网络中我们也可以对Socket套接字进行这样子的操作比如开启一个网络的连接、读取连接主机发送来的数据、向连接的主机发送数据、终止连接等操作。 Linux系统中的套接字相关的函数注意要包含网络编程中常用的头文件 #include sys/types.h #include sys/socket.h 1.2. socket() 函数原型 int socket(int domain, int type, int protocol); socket()函数用于创建一个socket描述符socket descriptor它唯一标识一个socket这个socket描述字跟文件描述字一样后续的操作都有用到它把它作为参数通过它来进行一些读写操作。 创建socket的时候也可以指定不同的参数创建不同的socket描述符socket函数的三个参数分别为1. domain参数domain表示该套接字使用的协议族在Linux系统中支持多种协议族对于TCP/IP协议来说选择AF_INET就足以当然如果你的IP协议的版本支持IPv6那么可以选择AF_INET6可选的协议族具体见 AF_UNIX, AF_LOCAL 本地通信AF_INET IPv4 AF_INET6 IPv6 AF_IPX IPX - Novell 协议 AF_NETLINK 内核用户界面设备 AF_X25 ITU-T X.25 / ISO-8208 协议 AF_AX25 业余无线电 AX.25 协议 AF_ATMPVC 访问原始ATM PVC AF_APPLETALK AppleTalk AF_PACKET 底层数据包接口 AF_ALG 内核加密API的AF_ALG接口 2. type参数type指定了套接字使用的服务类型 可能的类型有以下几种 SOCK_STREAM提供可靠的即能保证数据正确传送到对方面向连接的Socket服务多用于资料如文件传输如TCP协议。 SOCK_DGRAM是提供无保障的面向消息的Socket 服务主要用于在网络上发广播信息如UDP协议提供无连接不可靠的数据报交付服务。 SOCK_SEQPACKET为固定最大长度的数据报提供有序的可靠的基于双向连接的数据传输路径。 SOCK_RAW表示原始套接字它允许应用程序访问网络层的原始数据包这个套接字用得比较少暂时不用理会它。 SOCK_RDM提供不保证排序的可靠数据报层。 3. protocol参数protocol指定了套接字使用的协议在IPv4中只有TCP协议提供SOCK_STREAM这种可靠的服务只有UDP协议提供SOCK_DGRAM 服务对于这两种协议protocol的值均为0因为当protocol为0时会自动选择type类型对应的默认协议。 当创建套接字成功的时候该函数返回一个int类型的值也就是socket描述符该值大于等于0而如果创建套接字失败时则返回-1。 1.3. bind() 函数原型 int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen); 在套接口中一个套接字只是用户程序与内核交互信息的枢纽它自身没有太多的信息也没有网络协议地址和端口号等信息在进行网络通信的时候必须把一个套接字与一个IP地址或端口号相关联这个过程就是绑定的过程。 bind()函数用于将一个 IP 地址或端口号与一个套接字进行绑定许多时候内核会帮我们自动绑定一个IP地址与端口号然而有时用户可能需要自己来完成这个绑定的过程以满足实际应用的需要最典型的情况是一个服务器进程需要绑定一个众所周知的地址和端口以等待客户来连接作为服务器端这一步绑定的操作是必要的而作为客户端则不是必要的因为内核会帮我们自动选择合适的IP地址与端口号。 psbind()函数并不是总是需要调用的只有用户进程想与一个具体的地址或端口相关联的时候才需要调用这个函数。如果用户进程没有这个需要那么程序可以依赖内核的自动的选址机制来完成自动地址选择。 参数 sockfdsockfd是由socket()函数返回的套接字描述符。my_addrmy_addr是一个指向套接字地址结构的指针。addrlenaddrlen指定了以addr所指向的地址结构体的字节长度。 若bind()函数绑定成功则返回0若出错则为-1。 sockaddr 结构内容如下 sockaddr结构 struct sockaddr {sa_family_t sa_family;char sa_data[14]; } 咋一看这个结构体好像没啥信息要我们填写的确实也是这样子我们需要填写的IP地址与端口号等信息都在sa_data连续的14字节信息里面但这个结构对用户操作不友好一般我们在使用的时候都会使用sockaddr_in结构sockaddr_in和sockaddr是并列的结构占用的空间是一样的指向sockaddr_in的结构体的指针也可以指向sockadd的结构体并代替它而且sockaddr_in结构对用户将更加友好在使用的时候进行类型转换就可以了。 sockaddr_in结构 struct sockaddr_in {short int sin_family; /* 协议族 */unsigned short int sin_port; /* 端口号 */struct in_addr sin_addr; /* IP地址 */unsigned char sin_zero[8]; /* sin_zero是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节 */ }; 这个结构体的第一个字段是与sockaddr结构体是一致的而剩下的字段就是sa_data连续的14字节信息里面的内容只不过从新定义了成员变量而已sin_port字段是我们需要填写的端口号信息sin_addr字段是我们需要填写的IP地址信息剩下sin_zero 区域的8字节保留未用。 举个简单的使用实例 struct sockaddr_in server;bzero(server, sizeof(server));// assign IP, PORT server.sin_family AF_INET; server.sin_addr.s_addr htonl(INADDR_ANY); server.sin_port htons(6666);// binding newly created socket to given IP and verification bind(sockfd, (struct sockaddr*)server, sizeof(server)); 参考资料 1.【野火】《i.MX Linux开发实战指南》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

北京正规制作网站公司网页无法访问qq可以登陆

默认情况下,所有的新邮箱数据都是启用Exchange搜索,仅当多个邮箱迁移到该Exchange Server时,才禁用搜索索引。 获取数据库的Exchange搜索索引 使用Get-MailboxDatabase 来获取数据库的搜索索引 Get-MailboxDatabase | Select-Object Name,…

做爰全过程免费网站的视频教程网站资讯创作

本文将介绍以下内容: • 面向对象基本概念 • 类和结构体简介 • 引用类型和值类型区别 1. 引言 提起class和struct,我们首先的感觉是语法几乎相同,待遇却翻天复地。历史将接力棒由面向过程编程传到面向对象编程,class和stru…

学校网站管理与建设办法怎样建立自己购物网站

主流开发语言 Java 简介:Java 是一种广泛使用的面向对象的编程语言,由Sun Microsystems公司于1995年发布,后由Oracle公司接手。Java具有“一次编写,到处运行”的特性,它的跨平台能力得益于Java虚拟机(JVM&a…

东莞网站设计公司排名企业网站建设感想

在 Oracle 数据库中,你可以使用 ALTER TABLE 语句来添加字段,并使用 COMMENT ON COLUMN 语句来添加字段注释。以下是一个示例: 假设你有一个名为 employees 的表,你想要添加一个名为 email 的字段,并为其添加注释。 …

最新企业网站开发和设计软件个人域名可以做公司网站么

简介: 淘宝搜索推荐、视频搜索的背后使用了什么样的检索技术?非结构化数据检索,向量检索,以及多模态检索,它们到底解决了什么问题?今天由阿里巴巴达摩院的科学家从业务问题出发,抽丝剥茧&#x…

前端如何优雅地生成唯一标识?——一份跨环境 UUID 设备函数的封装与实战

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

广州网站建设外包公司网站建设情况自查报告

1、syntax"proto3":表明使用的是proto3格式,如果不指定则为proto22、package test:定义包名为test,生成类时,会产生一个目录为test3、message Person:消息主体内容,里面为各个字段的定义二、生成对应的PHP类定义好Perso…

解码红黑树

红黑树全面解析:从设计逻辑到代码落地 红黑树是自平衡二叉搜索树(Self-Balanced BST) 的经典实现,核心解决了普通 BST 失衡、AVL 树过度平衡的问题。它通过 “颜色约束” 实现 “大致平衡”,兼顾查找性能与插入 /…

苹果首款折叠屏iPhone全爆料汇总:明年9月发布、1.3万元起步

苹果首款折叠屏iPhone全爆料汇总:明年9月发布、1.3万元起步Posted on 2025-10-03 19:30 lzhdim 阅读(0) 评论(0) 收藏 举报从多方权威爆料基本可以确定,苹果将会在明年9月发布首款可折叠iPhone,与iPhone 18 Pr…

英文笔记

column 列 float 浮动 margin 边距 font 字体 border 边框 radius 圆角 background 背景 color 颜色 padding 填充

苹果最强平板!M5版iPad Pro开箱上手提前泄露:升级12GB内存 GPU性能大涨

苹果最强平板!M5版iPad Pro开箱上手提前泄露:升级12GB内存 GPU性能大涨Posted on 2025-10-03 19:30 lzhdim 阅读(0) 评论(0) 收藏 举报日前,俄罗斯博主Wylsacom提前发布M5芯片版iPad Pro开箱视频,甚至还在Gee…

深入解析:深入MySQL、JVM与Maven核心原理​

深入解析:深入MySQL、JVM与Maven核心原理​2025-10-03 19:32 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: bl…

创世网站建设 优帮云山西省住房和城乡建设厅门户网官方网站

上一次我们讲了使用Azure DevOps Pipeline实现.Net Core程序的CI。这次我们来演示下如何使用Azure DevOps实现.Net Core程序的CD。实现本次目标我们除了Azure DevOps外还需要:一台安装了Docker的主机一个 Docker Hub 账号上一次我们的CI实现了:发布>编…

网站域名备案后公示南宁做网站比较好的公司

目录 1.动态内存分配的原因 2.动态内存函数的介绍 2.1malloc和free函数 2.2calloc函数 2.3realloc函数 3. 常见的动态内存错误 3.1 对NULL指针的解引用操作 3.2 对动态开辟空间的越界访问 3.3 对非动态开辟内存使用free释放 3.4 使用free释放一块动态开辟内存的一部…

10/3

今日下起了大雨,我在家背诵了单词

专注手机网站建设中国工程建设管理协会网站

前言 关于 .NET Core 旧版本的 sdk 介绍可以参看我以前的 这篇 文章。 8 个小时前,.NET Core 项目组释放了 .NET Core 新一轮的 sdk 工具更新,即 RC4 版本 ,这个版本也就是意味着基本功能已经确定了,下个版本应该就是RTM版了&…

后台网站模板html口碑营销的优缺点

Java中的输入输出(I/O)流是用于读取和写入数据的机制。在Java中,I/O流被设计为按照流的方向和数据源/目标类型进行分类。流的方向分为输入流和输出流,而数据源/目标类型则分为字节流和字符流。 流的方向: 输入流&…

推荐一款集成AI能力的数据库管理工具

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Netflix确保数亿用户观影体验的“事件”管理是如何构建与实践的?

在流媒体服务随时可能因系统故障而中断的时代,Netflix 如何确保数亿用户的观影体验始终稳定?本文将揭晓其技术团队的关键实践 —— 从中央 SRE 团队独揽事件管理,到让每个工程师都能主动发起并处理事件的转型之路。…