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

asp网站 手机登录app开发排名公司

asp网站 手机登录,app开发排名公司,哪家网站,多用户 wordpress0voice第一课 https://github.com/0voice 今日学习#xff1a;网络通信IO 网络通信的核心是通过系统提供的socket套接字实现的。socket和c语言中文件操作的本质类似#xff0c;在c语言中#xff0c;通过fopen、fclose、fread、fwrite实现了对文件的操作#xff0c;socket…0voice第一课 https://github.com/0voice 今日学习网络通信IO 网络通信的核心是通过系统提供的socket套接字实现的。socket和c语言中文件操作的本质类似在c语言中通过fopen、fclose、fread、fwrite实现了对文件的操作socket类似于fopen函数创建一个文件即套接字然后可以往该“文件”中写入相关的内容。socket包含三个参数分别是协议族、文件类型和协议返回值为fd类似于fopen中的文件指针通过fd对套接字进行io操作。 #includesys/socket.h //socket所需要的头文件sockfd socket(AF_INET, SOCK_STREAM, 0); 创建了socket后需要将该socket和对应的地址进行绑定通信的本质在于不同的地址之间信息的传送socket提供了一个接口现在还需要该接口和某个具体的网络地址进行绑定才可以实现通信。 #includenetinet/in.h //socketaddr_in 需要的头文件// 地址需要专用的结构体 struct socketaddr_in 来定义 // 其具体结构如下struct sockaddr_in { sin_family; //协议族sin_port; //端口struct in_addr sin_addr; //IP地址 } struch in_addr{s_addr; }//在服务器端建立一个socketadd类型的地址 struct socketaddr_in server_addr; server_addr.family AF_INET; //使用ipv4协议族 server_addr.sin_addr.s_addr htonl(INADDR_ANY); //自动获取本机的IP地址并使用htonl转换格式 server_addr.sin_port htons(2000); //要绑定的端口号使用htons转换 获取到了通信地址和socket的fd后需要将两个进行绑定。 //bind函数 //三个参数// sockfd : 创建socket后反回的fd号即要绑定的“文件” // servaddr IP地址的指针 注意要把sockaddr_in的指针类型转换为socketaddr指针类型 //size IP地址的大小该参数可以用来判断属于哪个协议族。bind(sockfd, servaddr, size)绑定之后就可以监听该端口的信息了使用listen函数 进入listen之后就可以被连接了 //sockfd: 绑定后监听端口的对应的fd //backlog确定连接请求队列的长度达到该数量后新的请求不再接受。 listen(sockfd 10) 连接之后可以收到客户端的发送的信息但是无法显示出来所以需要accept函数--用于接收客户端发送的信息 //建立客户端 //返回的新套接字是专门用于和当前连接的客户端通信的 //所有后续的读写操作都需要通过这个新的套接字进行而原来的监听套接字sockfd继续监听新的连接请求。struct sockaddr_in clientaddr; int clientfd accept(sockfd, (struct sockaddr *)clientaddr, sizeof(clientaddr));accept是阻塞的即它会一直等待直到有客户端连接请求。如果没有请求程序将停留在此函数调用//通过recv()函数来接受信息 //buf指向接收缓冲区的指针用于存储从套接字读取到的数据 //len接收缓冲区的大小以字节为单位。recv() 会尝试最多读取 len 字节的数据 recv(int sockfd, void *buf, size_t len, int flags); //返回值 //返回实际接收到的字节数ssize_t即读取的数据大小。 //如果返回值为 0表示连接已关闭对于流式套接字。 注意sockfd 和 clientfd 的区别只要bind之后只有一个sockfd代表监听的端口。 但是被监听的端口可能同时有很多客户端发送信息对于每个服务端都需要使用accept来重新建立一个socket套接字来传送信息之后可以基于此fd进行recv和send操作。 int client_fd accept(sockfd, (struct sockaddr *)clientaddr, len); printf(accept finished!);char buffer[1024]; int count recv(client_fd, buffer, sizeof(buffer), 0); printf(recv: %s, buffer); count send(client_fd, buffer, count, 0); print(send: %d, count); recv更像是c语言文件操作中的fread而send更像是fwrite函数。 总结 网络io操作的流程如下 首先建立socket的fd号将该fd号与地址和端口进行bind 服务器端可以根据此fd号对这个端口进行listen监听并维系一个连接队列 服务器端使用accept与不同的客户端进行连接连接成功后生成新的socket的fd号根据此fd号对其进行读/写即recv和send操作。 一些心得 今天的课程涉及到了计算机网络里tcp相关的内容操作系统中阻塞相关的内容。这些知识本身并不陌生之前在课堂也都学习过知识点都理解只是上手代码由于不是特别熟悉还是有点吃力的需要每一个函数都要去查包括参数、返回值之类的计划2小时学完其实花了很久来上手大概四小时左右代码的实现看了两遍结合gpt搞懂了。虽然时间久还是很有成就感的。希望越来越熟悉加快学习的速度。
http://www.dnsts.com.cn/news/60548.html

相关文章:

  • 建网站找哪家好网站备案一天通过
  • 如何做企业网站开发百度地图导航网页版
  • 网站如何为关键词做外链答辩学网站开发
  • 互联网登录的网站名网站建设仟首先金手指15
  • 苏州网站建设制作服务商人力资源公司代缴社保合法吗
  • 衣服搭配网站建设网站排名在线优化工具
  • 北京建设局网站首页天津网站制作南昌
  • asp服装商城网站源码岗顶网站建设
  • 网站单页一键搭建的wordpress数据库怎么看
  • 网站需要第三方登录怎么做域名对网站seo的影响吗
  • 文化公司做网站交文化事业费吗一个app网站
  • 建设官网网站做网站需要懂哪些语言
  • 电商网站cms免费制作视频软件app有哪些
  • 网站开发的四个高级阶段包括58好项目网
  • 松江网站建设品划网络浙江建设银行官方网站
  • 青铜峡网站建设推广wordpress $comment
  • 百度能做网站建设吗hm网上商城
  • 免费制作永久网站wordpress公共函数在哪里
  • seo首页网站做网站需要资料
  • wordpress 启用多站点十大黄冈网站排行榜
  • 奇趣网做网站电脑网络题搜网站怎么做
  • 站长之家99蜘蛛网网站建设分析
  • php网站开发实用技术练习题郑州一建劳务有限公司
  • 曰本做爰视频网站中国免费素材网
  • 尼尔的h版是那个网站做的做网站需要备案吗
  • 免费免费网站模板下载网络营销方式有哪几种
  • 制作网站的基本流程都兰县公司网站建设
  • 静态网站提交表单怎么做自己设计logo用什么软件
  • 网站开发要先买服务器吗做招聘网站需要做什么公司
  • 企业网站优化内容网站开发模合同